![]() |
Chi-Tech
|
#include <diffusion_mip.h>
Public Member Functions | |
| DiffusionMIPSolver (std::string text_name, const chi_math::SpatialDiscretization &sdm, const chi_math::UnknownManager &uk_man, std::map< uint64_t, BoundaryCondition > bcs, MatID2XSMap map_mat_id_2_xs, const std::vector< UnitCellMatrices > &unit_cell_matrices, bool verbose) | |
| void | AssembleAand_b_wQpoints (const std::vector< double > &q_vector) |
| void | Assemble_b_wQpoints (const std::vector< double > &q_vector) |
| void | AssembleAand_b (const std::vector< double > &q_vector) override |
| void | Assemble_b (const std::vector< double > &q_vector) override |
| void | Assemble_b (Vec petsc_q_vector) override |
| double | HPerpendicular (const chi_mesh::Cell &cell, unsigned int f) |
| int | MapFaceNodeDisc (const chi_mesh::Cell &cur_cell, const chi_mesh::Cell &adj_cell, const std::vector< chi_mesh::Vector3 > &cc_node_locs, const std::vector< chi_mesh::Vector3 > &ac_node_locs, size_t ccf, size_t acf, size_t ccfi, double epsilon=1.0e-12) |
| virtual | ~DiffusionMIPSolver ()=default |
Public Member Functions inherited from lbs::acceleration::DiffusionSolver | |
| DiffusionSolver (std::string text_name, const chi_math::SpatialDiscretization &sdm, const chi_math::UnknownManager &uk_man, std::map< uint64_t, BoundaryCondition > bcs, MatID2XSMap map_mat_id_2_xs, const std::vector< UnitCellMatrices > &unit_cell_matrices, bool verbose, bool requires_ghosts) | |
| std::string | TextName () const |
| const Vec & | RHS () const |
| const std::map< uint64_t, BoundaryCondition > & | BCS () const |
| const chi_math::UnknownManager & | UnknownStructure () const |
| const chi_math::SpatialDiscretization & | SpatialDiscretization () const |
| std::pair< size_t, size_t > | GetNumPhiIterativeUnknowns () |
| virtual | ~DiffusionSolver () |
| void | Initialize () |
| virtual void | AssembleAand_b (const std::vector< double > &q_vector)=0 |
| virtual void | Assemble_b (const std::vector< double > &q_vector)=0 |
| virtual void | Assemble_b (Vec petsc_q_vector)=0 |
| void | AddToRHS (const std::vector< double > &values) |
| void | Solve (std::vector< double > &solution, bool use_initial_guess=false) |
| void | Solve (Vec petsc_solution, bool use_initial_guess=false) |
Static Public Member Functions | |
| static double | CallLuaXYZFunction (lua_State *L, const std::string &lua_func_name, const chi_mesh::Vector3 &xyz) |
Additional Inherited Members | |
Data Fields inherited from lbs::acceleration::DiffusionSolver | |
| struct lbs::acceleration::DiffusionSolver::Options | options |
Protected Types inherited from lbs::acceleration::DiffusionSolver | |
| typedef std::map< int, Multigroup_D_and_sigR > | MatID2XSMap |
Protected Attributes inherited from lbs::acceleration::DiffusionSolver | |
| const std::string | text_name_ |
| const chi_mesh::MeshContinuum & | grid_ |
| const chi_math::SpatialDiscretization & | sdm_ |
| const chi_math::UnknownManager | uk_man_ |
| const std::map< uint64_t, BoundaryCondition > | bcs_ |
| const MatID2XSMap | mat_id_2_xs_map_ |
| const std::vector< UnitCellMatrices > & | unit_cell_matrices_ |
| const int64_t | num_local_dofs_ |
| const int64_t | num_global_dofs_ |
| Mat | A_ = nullptr |
| Vec | rhs_ = nullptr |
| KSP | ksp_ = nullptr |
| const bool | requires_ghosts_ |
Generalized diffusion solver for both WGDSA and TGDSA based on the MIP-method of Bruno Turcksin and Jean Ragusa.
Definition at line 31 of file diffusion_mip.h.
| lbs::acceleration::DiffusionMIPSolver::DiffusionMIPSolver | ( | std::string | text_name, |
| const chi_math::SpatialDiscretization & | sdm, | ||
| const chi_math::UnknownManager & | uk_man, | ||
| std::map< uint64_t, BoundaryCondition > | bcs, | ||
| MatID2XSMap | map_mat_id_2_xs, | ||
| const std::vector< UnitCellMatrices > & | unit_cell_matrices, | ||
| bool | verbose | ||
| ) |
Default constructor.
Definition at line 9 of file diffusion_mip_00_constrdestr.cc.
|
virtualdefault |
|
overridevirtual |
Assembles the RHS using unit cell-matrices. These are the routines used in the production versions.
Implements lbs::acceleration::DiffusionSolver.
Definition at line 23 of file diffusion_mip_02d_assemble_b.cc.
|
overridevirtual |
Assembles the RHS using unit cell-matrices. These are the routines used in the production versions.
Implements lbs::acceleration::DiffusionSolver.
Definition at line 171 of file diffusion_mip_02d_assemble_b.cc.
| void lbs::acceleration::DiffusionMIPSolver::Assemble_b_wQpoints | ( | const std::vector< double > & | q_vector | ) |
Assembles just the RHS using quadrature points. These routines exist for implementing MMS.
Definition at line 21 of file diffusion_mip_02b_assemble_b.cc.
|
overridevirtual |
Assembles both the matrix and the RHS using unit cell-matrices. These are the routines used in the production versions.
Implements lbs::acceleration::DiffusionSolver.
Definition at line 23 of file diffusion_mip_02c_assembleAand_b.cc.
| void lbs::acceleration::DiffusionMIPSolver::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.
Definition at line 21 of file diffusion_mip_02a_assembleAand_b.cc.
|
static |
Calls a lua function with xyz coordinates.
| L | The lua state. |
| lua_func_name | The name used to define this lua function in the lua state. |
| xyz | The xyz coordinates of the point where the function is called. |
Definition at line 127 of file diffusion_mip_05_utils.cc.
| double lbs::acceleration::DiffusionMIPSolver::HPerpendicular | ( | const chi_mesh::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.
Lambda to compute surface area.
Definition at line 22 of file diffusion_mip_05_utils.cc.
| int lbs::acceleration::DiffusionMIPSolver::MapFaceNodeDisc | ( | const chi_mesh::Cell & | cur_cell, |
| const chi_mesh::Cell & | adj_cell, | ||
| const std::vector< chi_mesh::Vector3 > & | cc_node_locs, | ||
| const std::vector< chi_mesh::Vector3 > & | ac_node_locs, | ||
| size_t | ccf, | ||
| size_t | acf, | ||
| size_t | ccfi, | ||
| double | epsilon = 1.0e-12 |
||
| ) |
Maps a face, in a discontinuous sense, using the spatial discretization.
Definition at line 91 of file diffusion_mip_05_utils.cc.