Peano
Loading...
Searching...
No Matches
test_exagrype_ccz4_solver.py
Go to the documentation of this file.
1import pytest
2
3import exahype2.api
4import exagrype.api
5
6
8 solver = exagrype.api.CCZ4Solver("CCZ4")
9 assert solver.unknowns == 59
10 assert solver.auxiliary_variables == 0
11 assert solver.variable_names_per_entry()[16] == "lapse"
12 assert solver.variable_names_per_entry()[54] == "phi"
13
14
16 solver = exagrype.api.CCZ4Solver("CCZ4")
17 names = {term.name for term in solver.pde_terms}
18 assert names == {
19 "nonconservativeProduct",
20 "volumetricSource",
21 "maxEigenvalue",
22 "initPointWisely",
23 }
24 assert (
25 "::exagrype::ccz4::ncp("
26 in solver.get_pde_term("nonconservativeProduct").implementation
27 )
28 assert (
29 "::exagrype::ccz4::source("
30 in solver.get_pde_term("volumetricSource").implementation
31 )
32 assert (
33 "::exagrype::ccz4::maxEigenvalue("
34 in solver.get_pde_term("maxEigenvalue").implementation
35 )
36 # All terms are generated, so no user class is required
37 assert not solver.requires_user_class
38
39
41 solver = exagrype.api.CCZ4Solver("CCZ4")
42 assert "gaugeWave" in solver.get_pde_term("initPointWisely").implementation
43
44
47 "CCZ4", initial_condition=exagrype.api.initialvalues.flat()
48 )
49 assert (
50 "::exagrype::initialvalues::flat("
51 in solver.get_pde_term("initPointWisely").implementation
52 )
53
54
57 "CCZ4", parameters={"CCZ4k1": 0.0, "CCZ4LapseType": 1}
58 )
59 assert solver.parameters["CCZ4k1"] == 0.0
60 assert solver.parameters["CCZ4LapseType"] == 1
61 assert (
62 solver.parameters["CCZ4GLMd"]
63 == exagrype.api.CCZ4Solver.DefaultParameters["CCZ4GLMd"]
64 )
65
66
68 with pytest.raises(KeyError):
69 exagrype.api.CCZ4Solver("CCZ4", parameters={"CCZ4kk1": 0.0})
70
71
73 solver = exagrype.api.CCZ4Solver("CCZ4")
74 Enforce = exagrype.api.CCZ4Solver.EnforceCCZ4Constraint
75 assert solver._enforce_ccz4_constraint == Enforce.No
76 solver.enforce_ccz4_constraint(Enforce.IntermediateSteps)
77 assert solver._enforce_ccz4_constraint == Enforce.IntermediateSteps
78 solver.enforce_ccz4_constraint(Enforce.No)
79 assert solver._enforce_ccz4_constraint == Enforce.No
80 with pytest.raises(TypeError):
81 solver.enforce_ccz4_constraint(True)
Solver for the Einstein equations in the first-order CCZ4 formulation.
Definition CCZ4Solver.py:16
exahype2.api.InitPointWisely flat()
Flat (Minkowski) spacetime,.
This file is part of the ExaGRyPE project.
Definition __init__.py:1