Chi-Tech
mg_diffusion::Solver Class Reference

#include <mg_diffusion_solver.h>

Inheritance diagram for mg_diffusion::Solver:
chi_physics::Solver ChiObject

Public Types

typedef std::pair< BoundaryType, std::array< std::vector< double >, 3 > > BoundaryInfo
 
typedef std::map< uint, BoundaryInfoBoundaryPreferences
 

Public Member Functions

 Solver (const std::string &in_solver_name)
 
 ~Solver () override
 
void Initialize () override
 
void Initialize_Materials (std::set< int > &material_ids)
 
void Set_BCs (const std::vector< uint64_t > &globl_unique_bndry_ids)
 
void Assemble_A_bext ()
 
void Compute_TwoGrid_Params ()
 
void Compute_TwoGrid_VolumeFractions ()
 
void Execute () override
 
void Assemble_RHS (unsigned int g, int64_t iverbose)
 
void Assemble_RHS_TwoGrid (int64_t iverbose)
 
void SolveOneGroupProblem (unsigned int g, int64_t iverbose)
 
void Update_Flux_With_TwoGrid (int64_t iverbose)
 
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 &params)
 
virtual ~Solver ()=default
 
std::string TextName () const
 
BasicOptionsGetBasicOptions ()
 
const BasicOptionsGetBasicOptions () const
 
std::vector< std::shared_ptr< FieldFunctionGridBased > > & GetFieldFunctions ()
 
const std::vector< std::shared_ptr< FieldFunctionGridBased > > & GetFieldFunctions () const
 
TimeStepperGetTimeStepper ()
 
const TimeStepperGetTimeStepper () const
 
virtual void Initialize ()
 
virtual void Execute ()
 
virtual void Step ()
 
virtual void Advance ()
 
virtual chi::ParameterBlock GetInfo (const chi::ParameterBlock &params) const
 
virtual void SetProperties (const chi::ParameterBlock &params)
 
chi::ParameterBlock GetInfoWithPreCheck (const chi::ParameterBlock &params) const
 
- Public Member Functions inherited from ChiObject
 ChiObject ()
 
 ChiObject (const chi::InputParameters &params)
 
void SetStackID (size_t stack_id)
 
size_t StackID () const
 
virtual void PushOntoStack (std::shared_ptr< ChiObject > &new_object)
 
virtual ~ChiObject ()=default
 

Data Fields

chi_mesh::MeshContinuumPtr grid_ptr_ = nullptr
 
chi_math::SDMPtr sdm_ptr_ = nullptr
 
uint num_groups_ = 0
 
uint last_fast_group_ = 0
 
bool do_two_grid_ = false
 
size_t num_local_dofs_ = 0
 
size_t num_globl_dofs_ = 0
 
std::vector< MatA_
 
std::vector< Vecbext_
 
std::vector< Vecx_
 
std::vector< Vecx_old_
 
Vec thermal_dphi_ = nullptr
 
Vec b_ = nullptr
 
chi_math::PETScUtils::PETScSolverSetup petsc_solver_
 
KSPAppContext my_app_context_
 
std::vector< std::vector< double > > VF_
 
BoundaryPreferences boundary_preferences_
 
std::vector< Boundaryboundaries_
 

Protected Attributes

std::map< int, std::shared_ptr< chi_physics::MultiGroupXS > > matid_to_xs_map
 
std::map< int, std::shared_ptr< chi_physics::IsotropicMultiGrpSource > > matid_to_src_map
 
std::map< int, TwoGridCollapsedInfomap_mat_id_2_tginfo
 
- Protected Attributes inherited from chi_physics::Solver
BasicOptions basic_options_
 
std::vector< std::shared_ptr< FieldFunctionGridBased > > field_functions_
 
std::shared_ptr< TimeSteppertimestepper_ = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from chi_physics::Solver
static chi::InputParameters GetInputParameters ()
 
- Static Public Member Functions inherited from ChiObject
static chi::InputParameters GetInputParameters ()
 

Detailed Description

Multi-group diffusion solver

Definition at line 52 of file mg_diffusion_solver.h.

Member Typedef Documentation

◆ BoundaryInfo

typedef std::pair<BoundaryType,std::array<std::vector<double>, 3> > mg_diffusion::Solver::BoundaryInfo

Definition at line 81 of file mg_diffusion_solver.h.

◆ BoundaryPreferences

Constructor & Destructor Documentation

◆ Solver()

mg_diffusion::Solver::Solver ( const std::string &  in_solver_name)
explicit

Definition at line 15 of file mgd_01_main_init.cc.

◆ ~Solver()

mg_diffusion::Solver::~Solver ( )
overridevirtual

Reimplemented from chi_physics::Solver.

Definition at line 26 of file mgd_01_main_init.cc.

Member Function Documentation

◆ Assemble_A_bext()

void mg_diffusion::Solver::Assemble_A_bext ( )

Definition at line 12 of file mgd_01c_assemble_A_bext.cc.

◆ Assemble_RHS()

void mg_diffusion::Solver::Assemble_RHS ( unsigned int  g,
int64_t  iverbose 
)

Definition at line 8 of file mgd_02a_asemble_rhs_g.cc.

◆ Assemble_RHS_TwoGrid()

void mg_diffusion::Solver::Assemble_RHS_TwoGrid ( int64_t  iverbose)

Definition at line 11 of file mgd_02c_asemble_rhs_tg.cc.

◆ Compute_TwoGrid_Params()

void mg_diffusion::Solver::Compute_TwoGrid_Params ( )

Definition at line 6 of file mgd_01aa_init_two_grid_params.cc.

◆ Compute_TwoGrid_VolumeFractions()

void mg_diffusion::Solver::Compute_TwoGrid_VolumeFractions ( )

Definition at line 8 of file mgd_01ab_init_two_grid_volume_frac.cc.

◆ Execute()

void mg_diffusion::Solver::Execute ( )
overridevirtual

Reimplemented from chi_physics::Solver.

Definition at line 13 of file mgd_02_main_exec.cc.

◆ Initialize()

void mg_diffusion::Solver::Initialize ( )
overridevirtual

Reimplemented from chi_physics::Solver.

Definition at line 51 of file mgd_01_main_init.cc.

◆ Initialize_Materials()

void mg_diffusion::Solver::Initialize_Materials ( std::set< int > &  material_ids)

Definition at line 15 of file mgd_01a_init_materials.cc.

◆ Set_BCs()

void mg_diffusion::Solver::Set_BCs ( const std::vector< uint64_t > &  globl_unique_bndry_ids)

Definition at line 16 of file mgd_01b_set_bc.cc.

◆ SolveOneGroupProblem()

void mg_diffusion::Solver::SolveOneGroupProblem ( unsigned int  g,
int64_t  iverbose 
)

Definition at line 6 of file mgd_02b_solve1g.cc.

◆ Update_Flux_With_TwoGrid()

void mg_diffusion::Solver::Update_Flux_With_TwoGrid ( int64_t  iverbose)

Definition at line 12 of file mgd_02d_update_flux_with_two_grid_flux.cc.

◆ UpdateFieldFunctions()

void mg_diffusion::Solver::UpdateFieldFunctions ( )

Updates the field functions with the lates data.

Definition at line 8 of file mgd_04_update_fieldfuncs.cc.

Field Documentation

◆ A_

std::vector<Mat> mg_diffusion::Solver::A_

Definition at line 66 of file mg_diffusion_solver.h.

◆ b_

Vec mg_diffusion::Solver::b_ = nullptr

Definition at line 72 of file mg_diffusion_solver.h.

◆ bext_

std::vector<Vec> mg_diffusion::Solver::bext_

Definition at line 67 of file mg_diffusion_solver.h.

◆ boundaries_

std::vector<Boundary> mg_diffusion::Solver::boundaries_

Definition at line 85 of file mg_diffusion_solver.h.

◆ boundary_preferences_

BoundaryPreferences mg_diffusion::Solver::boundary_preferences_

Definition at line 84 of file mg_diffusion_solver.h.

◆ do_two_grid_

bool mg_diffusion::Solver::do_two_grid_ = false

Definition at line 61 of file mg_diffusion_solver.h.

◆ grid_ptr_

chi_mesh::MeshContinuumPtr mg_diffusion::Solver::grid_ptr_ = nullptr

Definition at line 55 of file mg_diffusion_solver.h.

◆ last_fast_group_

uint mg_diffusion::Solver::last_fast_group_ = 0

Definition at line 60 of file mg_diffusion_solver.h.

◆ map_mat_id_2_tginfo

std::map<int, TwoGridCollapsedInfo> mg_diffusion::Solver::map_mat_id_2_tginfo
protected

Definition at line 115 of file mg_diffusion_solver.h.

◆ matid_to_src_map

std::map<int,std::shared_ptr<chi_physics::IsotropicMultiGrpSource> > mg_diffusion::Solver::matid_to_src_map
protected

Definition at line 113 of file mg_diffusion_solver.h.

◆ matid_to_xs_map

std::map<int,std::shared_ptr<chi_physics::MultiGroupXS> > mg_diffusion::Solver::matid_to_xs_map
protected

Definition at line 110 of file mg_diffusion_solver.h.

◆ my_app_context_

KSPAppContext mg_diffusion::Solver::my_app_context_

Definition at line 75 of file mg_diffusion_solver.h.

◆ num_globl_dofs_

size_t mg_diffusion::Solver::num_globl_dofs_ = 0

Definition at line 64 of file mg_diffusion_solver.h.

◆ num_groups_

uint mg_diffusion::Solver::num_groups_ = 0

Definition at line 59 of file mg_diffusion_solver.h.

◆ num_local_dofs_

size_t mg_diffusion::Solver::num_local_dofs_ = 0

Definition at line 63 of file mg_diffusion_solver.h.

◆ petsc_solver_

chi_math::PETScUtils::PETScSolverSetup mg_diffusion::Solver::petsc_solver_

Definition at line 74 of file mg_diffusion_solver.h.

◆ sdm_ptr_

chi_math::SDMPtr mg_diffusion::Solver::sdm_ptr_ = nullptr

Definition at line 57 of file mg_diffusion_solver.h.

◆ thermal_dphi_

Vec mg_diffusion::Solver::thermal_dphi_ = nullptr

Definition at line 71 of file mg_diffusion_solver.h.

◆ VF_

std::vector< std::vector<double> > mg_diffusion::Solver::VF_

Definition at line 77 of file mg_diffusion_solver.h.

◆ x_

std::vector<Vec> mg_diffusion::Solver::x_

Definition at line 68 of file mg_diffusion_solver.h.

◆ x_old_

std::vector<Vec> mg_diffusion::Solver::x_old_

Definition at line 69 of file mg_diffusion_solver.h.


The documentation for this class was generated from the following files: