Class DiffusionMIPSolver
Defined in File diffusion_mip_solver.h
Inheritance Relationships
Base Type
public opensn::DiffusionSolver
(Class DiffusionSolver)
Class Documentation
-
class DiffusionMIPSolver : public opensn::DiffusionSolver
Generalized diffusion solver for both WGDSA and TGDSA based on the MIP-method of Bruno Turcksin and Jean Ragusa.
Public Functions
-
DiffusionMIPSolver(std::string name, const opensn::SpatialDiscretization &sdm, const UnknownManager &uk_man, std::map<uint64_t, BoundaryCondition> bcs, MatID2XSMap map_mat_id_2_xs, const std::vector<UnitCellMatrices> &unit_cell_matrices, bool suppress_bcs, bool verbose)
-
~DiffusionMIPSolver() override = default
-
inline void SetSourceFunction(const ScalarSpatialFunction &function)
-
inline void SetReferenceSolutionFunction(const ScalarSpatialFunction &function)
-
void AssembleAand_b_wQpoints(const std::vector<double> &q_vector)
Assembles both the matrix and the RHS using quadrature points. These routines exist for implementing MMS.
-
void Assemble_b_wQpoints(const std::vector<double> &q_vector)
Assembles just the RHS using quadrature points. These routines exist for implementing MMS.
-
virtual void AssembleAand_b(const std::vector<double> &q_vector) override
Assembles both the matrix and the RHS using unit cell-matrices. These are the routines used in the production versions.
-
virtual void Assemble_b(const std::vector<double> &q_vector) override
Assembles the RHS using unit cell-matrices. These are the routines used in the production versions.
-
virtual void Assemble_b(Vec petsc_q_vector) override
-
double HPerpendicular(const Cell &cell, unsigned int f)
Still searching for a reference for this.
For Polygons: Defined from paper
Turcksin B, Ragusa J, “Discontinuous diffusion synthetic acceleration
for S_n transport on 2D arbitrary polygonal meshes”, Journal of Computational Physics 274, pg 356-369, 2014.
Nv = Number of vertices. If Nv <= 4 then the perimeter parameter should be replaced by edge length.
-
DiffusionMIPSolver(std::string name, const opensn::SpatialDiscretization &sdm, const UnknownManager &uk_man, std::map<uint64_t, BoundaryCondition> bcs, MatID2XSMap map_mat_id_2_xs, const std::vector<UnitCellMatrices> &unit_cell_matrices, bool suppress_bcs, bool verbose)