コード例 #1
0
ファイル: test_abopt.py プロジェクト: sashmit/pmesh
def test_to_scalar():
    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    numpy.random.seed(1234)
    s = numpy.random.uniform(size=engine.q.shape) * 0.1

    check_grad(code, 's', 's', init={'s': s}, eps=1e-4, rtol=1e-8)
コード例 #2
0
def test_readout():
    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    s = pm.BoxSize / pm.Nmesh * 0.001 + 0.99 * engine.q / pm.Nmesh  # sample all positions.

    field = pm.generate_whitenoise(seed=1234, mode='real')

    code.get_x(s='s', x='x')
    code.decompose(x='x', layout='layout')
    code.readout(x='x', mesh='density', layout='layout', value='value')

    check_grad(code,
               'value',
               'density',
               init={
                   'density': field,
                   's': s
               },
               eps=1e-4,
               rtol=1e-8)

    check_grad(code,
               'value',
               's',
               init={
                   'density': field,
                   's': s
               },
               eps=1e-4,
               rtol=1e-8)
コード例 #3
0
ファイル: test_abopt.py プロジェクト: sashmit/pmesh
def test_lowpass():
    field = pm.generate_whitenoise(seed=1234, type='real')

    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    code.lowpass(real='r', Neff=1)

    check_grad(code, 'r', 'r', init={'r': field}, eps=1e-4, rtol=1e-8)
コード例 #4
0
ファイル: test_abopt.py プロジェクト: sashmit/pmesh
def test_c2rr2c():
    field = pm.generate_whitenoise(seed=1234, type='real')

    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    code.r2c(real='r', complex='c')
    code.c2r(complex='c', real='r')

    check_grad(code, 'r', 'r', init={'r': field}, eps=1e-4, rtol=1e-8)
コード例 #5
0
ファイル: test_abopt.py プロジェクト: sashmit/pmesh
def test_paint():
    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    s = pm.BoxSize / pm.Nmesh * 0.001 + 0.99 * engine.q / pm.Nmesh # sample all positions.

    code.get_x(s='s', x='x')
    code.decompose(x='x', layout='layout')
    code.paint(x='x', mesh='density', layout='layout')

    check_grad(code, 'density', 's', init={'s': s}, eps=1e-4, rtol=1e-8)
コード例 #6
0
ファイル: test_abopt.py プロジェクト: sashmit/pmesh
def test_transfer_real():
    def transfer(k):
        return k[0]

    field = pm.generate_whitenoise(seed=1234, type='real')

    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    code.r2c(complex='c', real='r')
    code.transfer(complex='c', tf=transfer)
    code.c2r(complex='c', real='r')

    check_grad(code, 'r', 'r', init={'r': field}, eps=1e-4, rtol=1e-8)
コード例 #7
0
ファイル: test_abopt.py プロジェクト: rainwoodman/pmesh
def test_readout():
    engine = ParticleMeshEngine(pm)
    code = CodeSegment(engine)
    s = pm.BoxSize / pm.Nmesh * 0.001 + 0.99 * engine.q / pm.Nmesh # sample all positions.

    field = pm.generate_whitenoise(seed=1234, type='real')

    code.get_x(s='s', x='x')
    code.decompose(x='x', layout='layout')
    code.readout(x='x', mesh='density', layout='layout', value='value')

    check_grad(code, 'value', 'density', init={'density' : field, 's': s}, eps=1e-4, rtol=1e-8)

    check_grad(code, 'value', 's', init={'density' : field, 's': s}, eps=1e-4, rtol=1e-8)