コード例 #1
0
    'union': [-1, -2, -3],
}, {
    'name': 'A',
    'phys': 2,
    'union': 1,
}, {
    'name': 'B',
    'phys': 4,
    'union': 2,
}, {
    'name': 'C',
    'phys': 16,
    'union': 3,
}]

mtf = MultiTrace(kRef, meshname, dd, 'CSC')

At, X, J, iJ = mtf.tolinop()

shape = mtf.shape

A = 2.0 * At
A2 = A * iJ * A

Ce = 0.5 * J - At
Ci = 0.5 * J + At

Ce2 = Ce * iJ * Ce
Ci2 = Ci * iJ * Ci

x = np.random.rand(shape[0]) + 1j * np.random.rand(shape[0])
コード例 #2
0
    },
    {
        'name': 'T',
        'union': 2,
        'phys': 9.,
    },
    {
        'name': 'F',
        'union': 3,
        'phys': 16.,
    },
]
doms = Domains(dd)
doms.write2dot()

mtf = MultiTrace(kRef, meshname, doms)

At, X, J, iJ = mtf.tolinop()

shape = mtf.shape

A = 2.0 * At
A2 = A * iJ * A

print('')
print(mtf.shape, flush=True)
print('')

Ce = 0.5 * J - At
Ci = 0.5 * J + At
コード例 #3
0
ファイル: eg-dist2sph.py プロジェクト: zimoun/mtf
doms = merge_msh_bubbles(dgens)

myd = Domains(doms)
myd.write2dot('graph.dot')
call(['dot', '-Teps', 'graph.dot'], stdout=open('graph.eps', 'wb'))

dd = myd

print(N)

##################################

meshname = "./geo/all.msh"


mtf = MultiTrace(kRef, meshname, dd)

At, X, J, iJ = mtf.tolinop()

shape = mtf.shape

A = 2.0 * At
A2 = A * iJ * A

Ce = 0.5 * J - At
Ci = 0.5 * J + At

Ce2 = Ce * iJ * Ce
Ci2 = Ci * iJ * Ci

x = np.random.rand(shape[0]) + 1j * np.random.rand(shape[0])
コード例 #4
0
ファイル: ex-1-db.py プロジェクト: zimoun/mtf
from assemb import MultiTrace, checker

from time import time
import scipy.linalg as la

meshname = "./geo/sphere-disjoint.msh"

kRef = 0.1 * np.pi

dd = [{
    'name': '0',
    'phys': 1,
    'union': [-1, -2, -3],
}, {
    'name': 'A',
    'phys': 2,
    'union': 1,
}, {
    'name': 'B',
    'phys': 4,
    'union': 2,
}, {
    'name': 'C',
    'phys': 16,
    'union': 3,
}]

mtf = MultiTrace(kRef, meshname, dd)
mtf.collecting()
コード例 #5
0
ファイル: err.py プロジェクト: zimoun/mtf
        'phys': 2,
        'union': 1,
    }
    # },
    #   { 'name': 'B',
    #     'phys': 1,
    #     'union': 2,
    #     }
    # },
    #   { 'name': 'C',
    #     'phys': 4,
    #     'union': 3,
    # }
]

mtf = MultiTrace(kRef, meshname, dd)

Aw = mtf.A_weak_form()

At, X, J, iJ = mtf.tolinop()

shape = mtf.shape

A = 2.0 * At
A2 = A * iJ * A

Ce = 0.5 * J - At
Ci = 0.5 * J + At

Ce2 = Ce * iJ * Ce
Ci2 = Ci * iJ * Ci
コード例 #6
0
nEl2, nEnl2 = [], []
nEL2, nEnL2 = [], []

for nlambda in nlambdas:

    print('\n')
    print('##################')
    print('\n')

    geoconf['nlambda'] = nlambda
    cmds = write_params_geo(geoconf)
    system("gmsh geo/sphere-disjoint.script.geo -")

    H.append(ll / nlambda)

    mtf = MultiTrace(geoconf['kRef'], 'geo/'+geoconf['meshname'], dd)

    Aw = mtf.A_weak_form()

    At, X, J, iJ = mtf.tolinop()

    shape = mtf.shape
    size, _ = shape
    Size.append(size)

    A = 2.0 * At
    A2 = A * iJ * A

    Ce = 0.5 * J - At
    Ci = 0.5 * J + At
コード例 #7
0
ファイル: ex-1-db.py プロジェクト: zimoun/mtf
from time import time
import scipy.linalg as la

meshname = "./geo/sphere-disjoint.msh"

kRef = 0.1 * np.pi

dd = [
    { 'name': '0',
      'phys': 1,
      'union': [-1, -2, -3],
  },
    { 'name': 'A',
      'phys': 2,
      'union': 1,
  },
    { 'name': 'B',
      'phys': 4,
      'union': 2,
  },
    { 'name': 'C',
      'phys': 16,
      'union': 3,
  }
]


mtf = MultiTrace(kRef, meshname, dd)
mtf.collecting()
コード例 #8
0
ファイル: ex-2-eig.py プロジェクト: zimoun/mtf
    'union': [-1, -2, -3],
}, {
    'name': 'A',
    'phys': 2,
    'union': 1,
}, {
    'name': 'B',
    'phys': 4,
    'union': 2,
}, {
    'name': 'C',
    'phys': 16,
    'union': 3,
}]

mtf = MultiTrace(kRef, meshname, dd, J_is='CSC')
#jmtf = MultiTrace(1j * kRef, meshname, dd)

At, X, J, iJ = mtf.tolinop()
#jAt, jX, jJ, jiJ = jmtf.tolinop()

shape = mtf.shape
#jshape = jmtf.shape

A = 2.0 * At
A2 = A * iJ * A

Ce = 0.5 * J - At
Ci = 0.5 * J + At

Ce2 = Ce * iJ * Ce
コード例 #9
0
ファイル: ex-2-convA.py プロジェクト: zimoun/mtf
      'phys': 4,
      'union': 2,
  },
    { 'name': 'C',
      'phys': 16,
      'union': 3,
  }
]

def dir_data(x, normal, dom_ind, result):
    result[0] =  -np.exp( 1j * kRef * x[1])

def neu_data(x, normal, dom_ind, result):
    result[0] = -1j * normal[1] * kRef * np.exp( 1j * kRef * x[1])

mtf = MultiTrace(kRef, meshname, dd, J_is='CSC')
b = mtf.rhs(dir_data, neu_data)

At, X, J, iJ = mtf.tolinop()

shape = mtf.shape

A = 2.0 * At
A2 = A * iJ * A

Ce = 0.5 * J - At
Ci = 0.5 * J + At

Ce2 = Ce * iJ * Ce
Ci2 = Ci * iJ * Ci
コード例 #10
0
ファイル: ex-2-eig.py プロジェクト: zimoun/mtf
    { 'name': 'A',
      'phys': 2,
      'union': 1,
  },
    { 'name': 'B',
      'phys': 4,
      'union': 2,
  },
    { 'name': 'C',
      'phys': 16,
      'union': 3,
  }
]


mtf = MultiTrace(kRef, meshname, dd, J_is='CSC')
#jmtf = MultiTrace(1j * kRef, meshname, dd)

At, X, J, iJ = mtf.tolinop()
#jAt, jX, jJ, jiJ = jmtf.tolinop()

shape = mtf.shape
#jshape = jmtf.shape

A = 2.0 * At
A2 = A * iJ * A

Ce = 0.5 * J - At
Ci = 0.5 * J + At

Ce2 = Ce * iJ * Ce