![]() |
Chi-Tech
|
#include <dfem_diffusion_solver.h>
Public Types | |
| typedef std::pair< BoundaryType, std::vector< double > > | BoundaryInfo |
| typedef std::map< std::string, BoundaryInfo > | BoundaryPreferences |
Public Member Functions | |
| Solver (const std::string &in_solver_name) | |
| ~Solver () override | |
| void | Initialize () override |
| void | Execute () 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) |
| void | UpdateFieldFunctions () |
Public Member Functions inherited from chi_physics::Solver | |
| Solver (std::string in_text_name) | |
| Solver (std::string in_text_name, std::initializer_list< BasicOption > in_options) | |
| Solver (const chi::InputParameters ¶ms) | |
| virtual | ~Solver ()=default |
| std::string | TextName () const |
| BasicOptions & | GetBasicOptions () |
| const BasicOptions & | GetBasicOptions () const |
| std::vector< std::shared_ptr< FieldFunctionGridBased > > & | GetFieldFunctions () |
| const std::vector< std::shared_ptr< FieldFunctionGridBased > > & | GetFieldFunctions () const |
| TimeStepper & | GetTimeStepper () |
| const TimeStepper & | GetTimeStepper () const |
| virtual void | Initialize () |
| virtual void | Execute () |
| virtual void | Step () |
| virtual void | Advance () |
| virtual chi::ParameterBlock | GetInfo (const chi::ParameterBlock ¶ms) const |
| virtual void | SetProperties (const chi::ParameterBlock ¶ms) |
| chi::ParameterBlock | GetInfoWithPreCheck (const chi::ParameterBlock ¶ms) const |
Public Member Functions inherited from ChiObject | |
| ChiObject () | |
| ChiObject (const chi::InputParameters ¶ms) | |
| void | SetStackID (size_t stack_id) |
| size_t | StackID () const |
| virtual void | PushOntoStack (std::shared_ptr< ChiObject > &new_object) |
| virtual | ~ChiObject ()=default |
Static Public Member Functions | |
| static double | CallLua_iXYZFunction (lua_State *L, const std::string &, int, const chi_mesh::Vector3 &) |
Static Public Member Functions inherited from chi_physics::Solver | |
| static chi::InputParameters | GetInputParameters () |
Static Public Member Functions inherited from ChiObject | |
| static chi::InputParameters | GetInputParameters () |
Data Fields | |
| chi_mesh::MeshContinuumPtr | grid_ptr_ = nullptr |
| chi_math::SDMPtr | sdm_ptr_ = nullptr |
| size_t | num_local_dofs_ = 0 |
| size_t | num_globl_dofs_ = 0 |
| std::vector< double > | field_ |
| Vec | x_ = nullptr |
| Vec | b_ = nullptr |
| Mat | A_ = nullptr |
| BoundaryPreferences | boundary_preferences_ |
| std::map< uint64_t, Boundary > | boundaries_ |
Additional Inherited Members | |
Protected Attributes inherited from chi_physics::Solver | |
| BasicOptions | basic_options_ |
| std::vector< std::shared_ptr< FieldFunctionGridBased > > | field_functions_ |
| std::shared_ptr< TimeStepper > | timestepper_ = nullptr |
DFEM diffusion solver
Definition at line 34 of file dfem_diffusion_solver.h.
| typedef std::pair<BoundaryType,std::vector<double> > dfem_diffusion::Solver::BoundaryInfo |
Definition at line 50 of file dfem_diffusion_solver.h.
| typedef std::map<std::string, BoundaryInfo> dfem_diffusion::Solver::BoundaryPreferences |
Definition at line 51 of file dfem_diffusion_solver.h.
|
explicit |
Definition at line 19 of file dfem_diffusion_solver.cc.
|
overridevirtual |
Reimplemented from chi_physics::Solver.
Definition at line 25 of file dfem_diffusion_solver.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. |
| imat | The material ID of the cell |
| xyz | The xyz coordinates of the point where the function is called. |
Definition at line 130 of file dfem_diffusion_utils.cc.
|
overridevirtual |
Reimplemented from chi_physics::Solver.
Definition at line 175 of file dfem_diffusion_solver.cc.
| double dfem_diffusion::Solver::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 dfem_diffusion_utils.cc.
|
overridevirtual |
Reimplemented from chi_physics::Solver.
Definition at line 33 of file dfem_diffusion_solver.cc.
| int dfem_diffusion::Solver::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 92 of file dfem_diffusion_utils.cc.
| void dfem_diffusion::Solver::UpdateFieldFunctions | ( | ) |
Updates the field functions with the latest data.
Definition at line 171 of file dfem_diffusion_utils.cc.
| Mat dfem_diffusion::Solver::A_ = nullptr |
Definition at line 48 of file dfem_diffusion_solver.h.
| Vec dfem_diffusion::Solver::b_ = nullptr |
Definition at line 47 of file dfem_diffusion_solver.h.
| std::map<uint64_t, Boundary> dfem_diffusion::Solver::boundaries_ |
Definition at line 53 of file dfem_diffusion_solver.h.
| BoundaryPreferences dfem_diffusion::Solver::boundary_preferences_ |
Definition at line 52 of file dfem_diffusion_solver.h.
| std::vector<double> dfem_diffusion::Solver::field_ |
Definition at line 44 of file dfem_diffusion_solver.h.
| chi_mesh::MeshContinuumPtr dfem_diffusion::Solver::grid_ptr_ = nullptr |
Definition at line 37 of file dfem_diffusion_solver.h.
| size_t dfem_diffusion::Solver::num_globl_dofs_ = 0 |
Definition at line 42 of file dfem_diffusion_solver.h.
| size_t dfem_diffusion::Solver::num_local_dofs_ = 0 |
Definition at line 41 of file dfem_diffusion_solver.h.
| chi_math::SDMPtr dfem_diffusion::Solver::sdm_ptr_ = nullptr |
Definition at line 39 of file dfem_diffusion_solver.h.
| Vec dfem_diffusion::Solver::x_ = nullptr |
Definition at line 46 of file dfem_diffusion_solver.h.