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.