Peano
Loading...
Searching...
No Matches
fuseADERSolvers Namespace Reference

Functions

 compute_projector_to_point_set (quad_points_from, quad_points_to)
 Transforms the degrees of freedom located at Lagrange quadrature_points to degrees of freedom located at a set of points as defined by the parameter points.
 flatten (xss)
 different_basis_postprocessing_kernel (condition, order, proj, solver_name)
 same_basis_postprocessing_kernel (condition, order, solver_name)
 dg2dgFace ()
 fuseADERSolvers (solver1, solver2, cond_1, cond_2)
 This is a variant which would also let you remove a bunch of other unnecessary operations as well the effort of storing and loading the cells at every timestamp, however it doesn't work at the moment because the boundary face between one condition and the other needs to be both at the same time so that the cells on either side of said face receive their required information.

Variables

str compute_time_step_size
 Variant 2: quick and dirty but functional and easy to make work, also more flexible def fuseADERSolvers(solver1, solver2, condition): solver_1_cond = " and " + condition solver_2_cond = " and not ( " + condition + ")".
 _compute_time_step_size
 aderSolver1QuadPoints = solver1._basis.quadrature_points(render=False)
 aderSolver2QuadPoints = solver2._basis.quadrature_points(render=False)
 proj1 = flatten(compute_projector_to_point_set(aderSolver1QuadPoints, aderSolver2QuadPoints))
 proj2 = flatten(compute_projector_to_point_set(aderSolver2QuadPoints, aderSolver1QuadPoints))
 f = open("observers/dg2dgface.h", "w")

Function Documentation

◆ compute_projector_to_point_set()

fuseADERSolvers.compute_projector_to_point_set ( quad_points_from,
quad_points_to )

Transforms the degrees of freedom located at Lagrange quadrature_points to degrees of freedom located at a set of points as defined by the parameter points.

Let us denote by P the projection operator. The DoF are computed according to:

u@x = sum_{m} P_m u^DG_m

Returns: Projector: The corresponding degrees of freedom located at the set of points defined by the parameter x.

Definition at line 4 of file fuseADERSolvers.py.

◆ dg2dgFace()

fuseADERSolvers.dg2dgFace ( )

Definition at line 137 of file fuseADERSolvers.py.

◆ different_basis_postprocessing_kernel()

fuseADERSolvers.different_basis_postprocessing_kernel ( condition,
order,
proj,
solver_name )

Definition at line 37 of file fuseADERSolvers.py.

◆ flatten()

fuseADERSolvers.flatten ( xss)

Definition at line 34 of file fuseADERSolvers.py.

◆ fuseADERSolvers()

fuseADERSolvers.fuseADERSolvers ( solver1,
solver2,
cond_1,
cond_2 )

This is a variant which would also let you remove a bunch of other unnecessary operations as well the effort of storing and loading the cells at every timestamp, however it doesn't work at the moment because the boundary face between one condition and the other needs to be both at the same time so that the cells on either side of said face receive their required information.

This is not possible with a simple negated condition, and wouldn't work with a lot of more complicated conditions (e.g. bathimetries)

Definition at line 191 of file fuseADERSolvers.py.

◆ same_basis_postprocessing_kernel()

fuseADERSolvers.same_basis_postprocessing_kernel ( condition,
order,
solver_name )

Definition at line 89 of file fuseADERSolvers.py.

Variable Documentation

◆ _compute_time_step_size

fuseADERSolvers._compute_time_step_size
protected

Definition at line 258 of file fuseADERSolvers.py.

◆ aderSolver1QuadPoints

fuseADERSolvers.aderSolver1QuadPoints = solver1._basis.quadrature_points(render=False)

Definition at line 261 of file fuseADERSolvers.py.

◆ aderSolver2QuadPoints

fuseADERSolvers.aderSolver2QuadPoints = solver2._basis.quadrature_points(render=False)

Definition at line 262 of file fuseADERSolvers.py.

◆ compute_time_step_size

str fuseADERSolvers.compute_time_step_size
Initial value:
1= """
2 double timeStepSize = std::min( repositories::""" + solver1.get_name_of_global_instance() + """.getAdmissibleTimeStepSize(),
3 repositories::""" + solver2.get_name_of_global_instance() + """.getAdmissibleTimeStepSize());
4 """

Variant 2: quick and dirty but functional and easy to make work, also more flexible def fuseADERSolvers(solver1, solver2, condition): solver_1_cond = " and " + condition solver_2_cond = " and not ( " + condition + ")".

Definition at line 253 of file fuseADERSolvers.py.

◆ f

fuseADERSolvers.f = open("observers/dg2dgface.h", "w")

Definition at line 277 of file fuseADERSolvers.py.

◆ proj1

◆ proj2