|
Peano
|
Matrix-free Collocated Solver for higher order polynomials. More...


Public Member Functions | |
| __init__ (self, name, unknowns_per_node, dimensions, polynomial_degree, min_h, max_h, assembly_matrix, assembly_matrix_scaling, mass_matrix, mass_matrix_scaling, integration_points, solver_tolerance, cell_relaxation, face_relaxation=0.6, custom_init_actionset=None, custom_plot_actionset=None, custom_init_cell="", enable_plotting=True, plot_predicate="true" # enable custom plotting behaviour) | |
| Construct solver. | |
| add_to_plot (self, observer) | |
| Tell the project's observer how to plot the data. | |
| add_to_create_grid (self, observer) | |
| add_to_init_solution (self, observer) | |
| Solution initialisation. | |
| add_to_solve (self, observer) | |
| add_implementation_files_to_project (self, namespace, output, subdirectory="", abstract_overwrite=True) | |
| The solver creates two classes: An abstract base class and its implementations. | |
Public Member Functions inherited from solvers.api.Solver.Solver | |
| add_to_Peano4_datamodel (self, datamodel, verbose) | |
| add_use_statements (self, observer) | |
| This routine should still be called even if overwritten in child class. | |
| typename (self) | |
| instance_name (self) | |
| Return the name of the object that will be created for this solver. | |
| create_readme_descriptor (self) | |
| add_to_abstract_solver (self, header, implementation) | |
| add_to_vertex_data (self, name, size) | |
| Add in extra attributes on the fly. | |
| add_to_cell_data (self, name, size) | |
| Add in extra attributes on the fly. | |
| add_to_face_data (self, name, size) | |
| Add in extra attributes on the fly. | |
| name (self) | |
| __str__ (self) | |
Data Fields | |
| preprocessing_action_set | |
| postprocessing_action_set | |
| max_h | |
| min_h | |
Data Fields inherited from solvers.api.Solver.Solver | |
| min_h | |
| max_h | |
Protected Member Functions | |
| _construct_narrow_to_interior_matrix (self) | |
| Construct the matrix which basically picks out the interior points. | |
Matrix-free Collocated Solver for higher order polynomials.
This continuous Galerkin p-method works with Gauss-Lobatto nodes only, as we employ a block smoother.
Definition at line 17 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.__init__ | ( | self, | |
| name, | |||
| unknowns_per_node, | |||
| dimensions, | |||
| polynomial_degree, | |||
| min_h, | |||
| max_h, | |||
| assembly_matrix, | |||
| assembly_matrix_scaling, | |||
| mass_matrix, | |||
| mass_matrix_scaling, | |||
| integration_points, | |||
| solver_tolerance, | |||
| cell_relaxation, | |||
face_relaxation = 0.6, |
|||
custom_init_actionset = None, |
|||
custom_plot_actionset = None, |
|||
custom_init_cell = "", |
|||
enable_plotting = True, |
|||
plot_predicate = "true" # enable custom plotting behaviour |
|||
| ) |
Construct solver.
| integration_points | [Float] Sequence of polynomial_degree+1 entries which identify the position of the integration points along the unit interval. |
Reimplemented from solvers.api.Solver.Solver.
Definition at line 27 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.


|
protected |
Construct the matrix which basically picks out the interior points.
Definition at line 144 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
References convert::input::PeanoTextPatchFileReader._dimensions, exahype2.api.dslhype.SyntaxTree.Subscript._dimensions, exahype2.api.dslhype.SyntaxTree.Matrix._dimensions, exahype2.api.dslhype.SyntaxTree.TSimpleMemref._dimensions, exahype2.api.dslhype.SyntaxTree.TDataBlock._dimensions, exahype2.api.dslhype.SyntaxTree.MemoryAllocation._dimensions, exahype2.api.dslhype.SyntaxTree.MemoryDeallocation._dimensions, exahype2.api.Project.Project._dimensions, exaparty.api.Project.Project._dimensions, api.Project.Project._dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._dimensions, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._dimensions, tarch.plotter.api.output.Visualiser.PatchFileData._dimensions, tarch.plotter.api.output.Visualiser.Visualiser._dimensions, tarch.plotter::griddata::blockstructured::PeanoBinaryPatchFileWriter._dimensions, tarch.plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch.plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._polynomial_degree, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._unknowns_per_cell_node, and solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._unknowns_per_cell_node.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_implementation_files_to_project | ( | self, | |
| namespace, | |||
| output, | |||
subdirectory = "", |
|||
abstract_overwrite = True |
|||
| ) |
The solver creates two classes: An abstract base class and its implementations.
The abstract base class will be overwritten if there is one in the directory. I pipe all the Python constants into this base class, so they are available in the C++ code.
Definition at line 201 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
References peano4.api.output.ActionSet.ActionSet.__class__, peano4.api.output.Jinja2TemplatedHeaderImplementationFilePair.Jinja2TemplatedHeaderImplementationFilePair.__class__, and peano4.api.output.TemplatedHeaderFile.TemplatedHeaderFile.__class__.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_create_grid | ( | self, | |
| observer | |||
| ) |
Definition at line 125 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_init_solution | ( | self, | |
| observer | |||
| ) |
Solution initialisation.
We can either use the standard initialisation procedure or pass in another one when we instantiate this solver class.
Definition at line 129 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
References solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi._custom_init_actionset, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._custom_init_actionset, and solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._custom_init_actionset.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_plot | ( | self, | |
| observer | |||
| ) |
Tell the project's observer how to plot the data.
Nothing fancy here. We add plotters from Peano's toolbox to visualise solution and right-hand side.
Definition at line 106 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
References solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi._custom_plot_actionset, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._custom_plot_actionset, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._custom_plot_actionset, solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi._enable_plotting, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._enable_plotting, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._enable_plotting, solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi._plot_predicate, solvers.api.CollocatedMG.CollocatedMG._plot_predicate, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._plot_predicate, and solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._plot_predicate.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_solve | ( | self, | |
| observer | |||
| ) |
Definition at line 185 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
References solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi._basic_descend_order, solvers.api.CollocatedMG.CollocatedMG._basic_descend_order, and solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._basic_descend_order.
|
protected |
Definition at line 234 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.Solver.Solver.add_to_abstract_solver().
|
protected |
Definition at line 235 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.Solver.Solver.add_to_abstract_solver().
|
protected |
Definition at line 67 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 68 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 103 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi.add_to_solve(), solvers.api.CollocatedMG.CollocatedMG.add_to_solve(), solvers.api.CollocatedMGSingleThreaded.CollocatedMGSingleThreaded.add_to_solve(), and solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_solve().
|
protected |
Definition at line 72 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 77 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi.add_to_init_solution(), and solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_init_solution().
|
protected |
Definition at line 80 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 78 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi.add_to_plot(), and solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_plot().
|
protected |
Definition at line 88 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 89 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 63 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by exaparty.api.Project.Project.__configure_makefile(), api.Project.Project.__configure_makefile(), exaparty.api.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.api.Project.Project.__export_constants(), api.Project.Project.__init__(), solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._construct_narrow_to_interior_matrix(), scenarios.elastic_planar_waves.ElasticPlanarWaves.analytical_solution(), tarch.plotter.api.output.Visualiser.PatchFileData.apply_renderer_to_data(), exahype2.api.dslhype.SyntaxTree.Matrix.index(), scenarios.elastic_planar_waves.ElasticPlanarWaves.initial_conditions(), exahype2.api.dslhype.SyntaxTree.TSimpleMemref.print_mlir(), exahype2.api.dslhype.SyntaxTree.TDataBlock.print_mlir(), exaparty.api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), exahype2.api.Project.Project.set_global_simulation_parameters(), and scenarios.scenario.Scenario.set_global_simulation_parameters().
|
protected |
Definition at line 82 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi.add_to_plot(), and solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_plot().
|
protected |
Definition at line 73 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 90 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 85 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 69 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 70 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
Definition at line 83 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
Referenced by solvers.api.CollocatedDLinearDiscretisationWithPointJacobi.CollocatedDLinearDiscretisationWithPointJacobi.add_to_plot(), solvers.api.CollocatedMG.CollocatedMG.add_to_plot(), and solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.add_to_plot().
|
protected |
|
protected |
Definition at line 75 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
|
protected |
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.max_h |
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.min_h |
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.postprocessing_action_set |
Definition at line 101 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.
| solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.preprocessing_action_set |
Definition at line 100 of file ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.py.