|
Peano
|


Public Member Functions | |
| __init__ (self, dimensions, poly_degree, unknowns_per_cell_node, solutions_per_face_node, projections_per_face_node) | |
| get_A_tilde (self) | |
| Compute block-diagonal of the Schur-complement matrix. | |
| get_cell_from_face_matrix (self) | |
| the shape of this should be: unknowns_per_cell_node * ( self.poly_degree + 1 ) ** self.dimensions rows (= 4 for 2D and 1st order) solutions_per_face_node * ( self.poly_degree + 1 ) ** (self.dimensions-1) * 2 *dimensions cols (= 16 for 2D and 1st order) | |
| get_projection_matrices (self) | |
| Compute projection matrix from the FC and FF matrices provided in BlockMatrix interface. | |
| get_face_from_cell_matrix (self) | |
| Calculation of the projection matrix is implemented in get_projection_matrices(). | |
| get_boundary_matrix (self) | |
| get_cell_system_matrix_for_laplacian (self) | |
| Return the superclass's matrix, alongside a array of length 1 for scale factor. | |
| get_cell_mass_matrix (self) | |
| Return the superclass's matrix, alongside a array of length 1 for scale factor. | |
| get_cell_identity_matrix (self) | |
| Construct identity for this particular equation system. | |
Public Member Functions inherited from mghype.api.matrixgenerators.GaussLobatto.GaussLobatto | |
| get_nodal_points_1d (self) | |
| Get the nodal points in the interval [-1,1]. | |
| get_points1d (self) | |
| Get spacing of integration points over unit interval. | |
| get_weights1d (self) | |
| Overwrites the method in the base class. | |
| get_weights1d_legendre (self) | |
| get_points1d_legendre (self) | |
| get_points_unit_interval (self) | |
| eval_integral (self, functions, dim=-1, factor=1) | |
| get_face_to_cell_matrix (self) | |
| Return the cel-to-face matrix A_p^qf. | |
| get_cell_to_face_matrix (self) | |
| Return the projection operator. | |
| get_averaging_riemann_solver (self) | |
| Simple averaging Riemann solver. | |
| get_face_face_riemann_problem_matrix (self) | |
| Averaging matrix. | |
Public Member Functions inherited from mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator | |
| get_polynomial1d (self) | |
| Method to create a list of 1D polynomials. | |
| get_integration_points_over_unit_interval (self) | |
| Most schemes define the integration point over the interval [-1,1] whereas MGHyPE often needs it on the unit interval. | |
| get_points_for_dimension (self, dim=-1) | |
| We promote the 1D quadrature points in into the dimensions of our problem by taking cartesian product. | |
| get_weights_for_dimension (self, dim=-1) | |
| We promote the 1D quadrature weights in into the dimensions of our problem by taking cartesian product. | |
| convert_index_to_dim (self, index, dim=-1) | |
| This method helps with indexing. | |
| get_polynomial (self, index, dim=-1) | |
| Promote 1d polynomials to many dimensions by taking products. | |
| get_deriv (self, index, dimForDeriv, dim=-1) | |
| dimForDeriv is the singular dimension that we wanna take a polyderiv in | |
Data Fields | |
| dimensions | |
Data Fields inherited from mghype.api.matrixgenerators.GaussLobatto.GaussLobatto | |
| unknowns_per_cell_node | |
| unknowns_per_face_node | |
| cell_nodes | |
| face_nodes | |
| use_unit_interval | |
| points1d | |
| block_matrix | |
| poly_degree | |
| dimensions | |
Data Fields inherited from mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator | |
| dimensions | |
| poly_degree | |
| unknowns_per_node | |
| polynomials1d | |
| derivatives1d | |
| points1d | |
| weights1d | |
Protected Attributes | |
| _solutions_per_face_node | |
| _projections_per_face_node | |
Definition at line 298 of file GaussLobatto.py.
| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.__init__ | ( | self, | |
| dimensions, | |||
| poly_degree, | |||
| unknowns_per_cell_node, | |||
| solutions_per_face_node, | |||
| projections_per_face_node | |||
| ) |
Reimplemented from mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.
Definition at line 303 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.__init__().
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.__init__().


| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_A_tilde | ( | self | ) |
Compute block-diagonal of the Schur-complement matrix.
Definition at line 318 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_from_face_matrix(), mghype.api.matrixgenerators.DLinear.DLinear.get_cell_system_matrix_for_laplacian(), mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.get_cell_system_matrix_for_laplacian(), mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.get_cell_system_matrix_for_laplacian(), mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_system_matrix_for_laplacian(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.get_cell_system_matrix_for_laplacian(), and mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_projection_matrices().

| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_boundary_matrix | ( | self | ) |
we are fixing the value of the solution vector on the boundary with the value of the projections here. you can assume everything was set to 0 initially
Definition at line 631 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree._solutions_per_face_node, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._solutions_per_face_node, convert::data::PatchData.dimensions, convert::data::Variable.dimensions, mghype.api.matrixgenerators.DLinear.DLinear.dimensions, mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.dimensions, mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.dimensions, api.solvers.DiscontinuousGalerkinDiscretisation.DiscontinuousGalerkinDiscretisation.dimensions, tarch.plotter.api.input.PatchFileParser.UnknownAttributes.dimensions, tarch.plotter.api.input.PatchFileParser.PatchFileParser.dimensions, tarch::reader::PeanoTextPatchFileReader::Header.dimensions, equations.acoustic.Acoustic.dimensions, equations.advection.Advection.dimensions, equations.elastic.Elastic.dimensions, equations.equation.Equation.dimensions, equations.euler.Euler.dimensions, equations.swe.SWE_W_Bathymetry.dimensions, equations.swe.SWE_WO_Bathymetry.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.poly_degree, and mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.poly_degree.
| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_from_face_matrix | ( | self | ) |
the shape of this should be: unknowns_per_cell_node * ( self.poly_degree + 1 ) ** self.dimensions rows (= 4 for 2D and 1st order) solutions_per_face_node * ( self.poly_degree + 1 ) ** (self.dimensions-1) * 2 *dimensions cols (= 16 for 2D and 1st order)
solutions_per_face_node counts u and q multiply further by number of nodes per face multiply further by number of faces
Definition at line 337 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree._solutions_per_face_node, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._solutions_per_face_node, mghype.api.matrixgenerators.DLinear.DLinear.block_matrix, mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.block_matrix, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.block_matrix, convert::data::PatchData.dimensions, convert::data::Variable.dimensions, mghype.api.matrixgenerators.DLinear.DLinear.dimensions, mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.dimensions, mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.dimensions, api.solvers.DiscontinuousGalerkinDiscretisation.DiscontinuousGalerkinDiscretisation.dimensions, tarch.plotter.api.input.PatchFileParser.UnknownAttributes.dimensions, tarch.plotter.api.input.PatchFileParser.PatchFileParser.dimensions, tarch::reader::PeanoTextPatchFileReader::Header.dimensions, equations.acoustic.Acoustic.dimensions, equations.advection.Advection.dimensions, equations.elastic.Elastic.dimensions, equations.equation.Equation.dimensions, equations.euler.Euler.dimensions, equations.swe.SWE_W_Bathymetry.dimensions, equations.swe.SWE_WO_Bathymetry.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.poly_degree, mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.poly_degree, and mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.unknowns_per_cell_node.
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_A_tilde().

| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_identity_matrix | ( | self | ) |
Construct identity for this particular equation system.
Not that this is identity construction has to take the number of unknowns into account as well as the number of degrees of freedom hosted within a cell.
Reimplemented from mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.
Definition at line 663 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_identity_matrix().
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_identity_matrix(), and mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.get_cell_mass_matrix().


| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_mass_matrix | ( | self | ) |
Return the superclass's matrix, alongside a array of length 1 for scale factor.
Hardcoding the number
Reimplemented from mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.
Definition at line 656 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_mass_matrix().
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_mass_matrix(), mghype.api.matrixgenerators.DLinear.DLinear.get_lumped_mass_matrix(), and mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.get_lumped_mass_matrix().


| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_system_matrix_for_laplacian | ( | self | ) |
Return the superclass's matrix, alongside a array of length 1 for scale factor.
Hardcoding the number
Reimplemented from mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.
Definition at line 649 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_system_matrix_for_laplacian().
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_A_tilde(), and mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_system_matrix_for_laplacian().


| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_face_from_cell_matrix | ( | self | ) |
Calculation of the projection matrix is implemented in get_projection_matrices().
Here we use it's output.
We wanna project the cell solution onto the face projections vector We wanna include redundant rows now.
How many projections are stored on each face? Well, it's 2 * self._projections_per_face_node on each node.
So the output of this matrix should have: extra factor to account for all the faces 2 * self._projections_per_face_node * ( self.poly_degree + 1 ) ** (self.dimensions-1) * 2 *self.dimensions rows (= 32) self.unknowns_per_cell_node * ( self.poly_degree + 1 ) ** self.dimensions cols (= 4)
Definition at line 567 of file GaussLobatto.py.
References assert, and mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_projection_matrices().

| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_projection_matrices | ( | self | ) |
Compute projection matrix from the FC and FF matrices provided in BlockMatrix interface.
Return face-from-cell projection matrices with and without zero rows corresponding to the redundant projections. Matrix with redundant projections is needed for get_face_from_cell_matrix(self). Matrix without redundant projections is convenient for computing the Schur-complement matrix.
The output matrix with redundant projections should have: extra factor to account for all the faces 2 * self._projections_per_face_node * ( self.poly_degree + 1 ) ** (self.dimensions-1) * 2 *self.dimensions rows (= 32 in 2D 1st order) self.unknowns_per_cell_node * ( self.poly_degree + 1 ) ** self.dimensions cols (= 4 in 2D 1st order)
The output matrix without redundant projections should have half the number of row as the previous one: rows (= 16 in 2D 1st order) cols (= 4 in 2D 1st order)
Definition at line 399 of file GaussLobatto.py.
References mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree._projections_per_face_node, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._projections_per_face_node, mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree._solutions_per_face_node, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._solutions_per_face_node, assert, mghype.api.matrixgenerators.DLinear.DLinear.block_matrix, mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.block_matrix, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.block_matrix, convert::data::PatchData.dimensions, convert::data::Variable.dimensions, mghype.api.matrixgenerators.DLinear.DLinear.dimensions, mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.dimensions, mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.dimensions, api.solvers.DiscontinuousGalerkinDiscretisation.DiscontinuousGalerkinDiscretisation.dimensions, tarch.plotter.api.input.PatchFileParser.UnknownAttributes.dimensions, tarch.plotter.api.input.PatchFileParser.PatchFileParser.dimensions, tarch::reader::PeanoTextPatchFileReader::Header.dimensions, equations.acoustic.Acoustic.dimensions, equations.advection.Advection.dimensions, equations.elastic.Elastic.dimensions, equations.equation.Equation.dimensions, equations.euler.Euler.dimensions, equations.swe.SWE_W_Bathymetry.dimensions, equations.swe.SWE_WO_Bathymetry.dimensions, mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.poly_degree, mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.poly_degree, and mghype.api.matrixgenerators.GaussLobatto.GaussLobatto.unknowns_per_cell_node.
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_A_tilde(), and mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_face_from_cell_matrix().

|
protected |
Definition at line 316 of file GaussLobatto.py.
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_projection_matrices().
|
protected |
Definition at line 315 of file GaussLobatto.py.
Referenced by mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_boundary_matrix(), mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_from_face_matrix(), and mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_projection_matrices().
| mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.dimensions |
Definition at line 368 of file GaussLobatto.py.
Referenced by tarch.plotter.api.input.PatchFileParser.PatchFileParser.__parse_meta_data_region(), tarch.plotter.api.input.PatchFileParser.PatchFileParser.__parse_patch_region(), tarch.plotter.api.input.PatchFileParser.PatchFileParser.__record_doubles_per_patch(), tarch.plotter.api.input.PatchFileParser.UnknownAttributes._initialise_default_mapping_if_no_mapping_specified(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.convert_index_to_dim(), equations.euler.Euler.eigenvalues(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.eval_integral(), equations.elastic.Elastic.flux(), equations.euler.Euler.flux(), mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_boundary_matrix(), mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_cell_from_face_matrix(), mghype.api.matrixgenerators.DLinear.DLinear.get_cell_identity_matrix(), mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.get_cell_identity_matrix(), mghype.api.matrixgenerators.DLinear.DLinear.get_cell_mass_matrix(), mghype.api.matrixgenerators.DLinear.DLinear.get_cell_system_matrix_for_laplacian(), mghype.api.matrixgenerators.DLinearMassIdentity.DLinearMassIdentity.get_cell_system_matrix_for_laplacian(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.get_deriv(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.get_points_for_dimension(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.get_polynomial(), mghype.api.matrixgenerators.GaussLobatto.GaussLobattoMatrixFree.get_projection_matrices(), mghype.api.matrixgenerators.MatrixGenerator.MatrixGenerator.get_weights_for_dimension(), matrices.DgGenerator.getCellToFaceMatrix(), api.solvers.DiscontinuousGalerkinDiscretisation.DiscontinuousGalerkinDiscretisation.nodes_per_cell(), api.solvers.DiscontinuousGalerkinDiscretisation.DiscontinuousGalerkinDiscretisation.nodes_per_face(), and tarch.plotter.api.input.PatchFileParser.PatchFileParser.parse_file().