Newer
Older
def test_norm_complex(actx_factory, p):
mesh = mgen.generate_regular_rect_mesh(
nelements_per_axis=(8,)*dim, order=1)
dcoll = DiscretizationCollection(actx, mesh, order=4)
nodes = actx.thaw(dcoll.nodes())
norm = op.norm(dcoll, (1 + 1j)*nodes[0], p)
if p == 2:
ref_norm = (2/3)**0.5
elif p == np.inf:
ref_norm = 2**0.5
logger.info("norm: %.5e %.5e", norm, ref_norm)
assert abs(norm-ref_norm) / abs(ref_norm) < 1e-13
@pytest.mark.parametrize("p", [2, np.inf])
def test_norm_obj_array(actx_factory, p):
actx = actx_factory()
dim = 2
mesh = mgen.generate_regular_rect_mesh(
a=(0,)*dim, b=(1,)*dim,
nelements_per_axis=(8,)*dim, order=1)
dcoll = DiscretizationCollection(actx, mesh, order=4)
nodes = actx.thaw(dcoll.nodes())
norm = op.norm(dcoll, nodes, p)
if p == 2:
ref_norm = (dim/3)**0.5
elif p == np.inf:
ref_norm = 1
logger.info("norm: %.5e %.5e", norm, ref_norm)
assert abs(norm-ref_norm) / abs(ref_norm) < 1e-14
def test_empty_boundary(actx_factory):
# https://github.com/inducer/grudge/issues/54
from meshmode.mesh import BTAG_NONE
mesh = mgen.generate_regular_rect_mesh(
nelements_per_axis=(8,)*dim, order=4)
dcoll = DiscretizationCollection(actx, mesh, order=4)
normal = dcoll.normal(BTAG_NONE)
from meshmode.dof_array import DOFArray
for component in normal:
assert isinstance(component, DOFArray)
assert len(component) == len(dcoll.discr_from_dd(BTAG_NONE).groups)
# $ python test_grudge.py 'test_routine()'
if __name__ == "__main__":
import sys
if len(sys.argv) > 1:
exec(sys.argv[1])
else:
pytest.main([__file__])