1#ifndef CHITECH_LBS_ACCEL_DIFFUSION_H
2#define CHITECH_LBS_ACCEL_DIFFUSION_H
18class SpatialDiscretization;
23struct UnitCellMatrices;
29struct Multigroup_D_and_sigR;
42 const std::map<uint64_t, BoundaryCondition>
bcs_;
75 std::map<uint64_t, BoundaryCondition> bcs,
77 const std::vector<UnitCellMatrices>& unit_cell_matrices,
79 bool requires_ghosts);
83 const std::map<uint64_t, BoundaryCondition>&
BCS()
const {
return bcs_;}
95 virtual void Assemble_b(
const std::vector<double>& q_vector) = 0;
97 void AddToRHS(
const std::vector<double>& values);
99 void Solve(std::vector<double>& solution,
bool use_initial_guess=
false);
100 void Solve(
Vec petsc_solution,
bool use_initial_guess=
false);
struct lbs::acceleration::DiffusionSolver::Options options
const bool requires_ghosts_
const std::map< uint64_t, BoundaryCondition > & BCS() const
std::string TextName() const
const chi_math::SpatialDiscretization & sdm_
const chi_math::UnknownManager & UnknownStructure() const
const int64_t num_local_dofs_
virtual void Assemble_b(Vec petsc_q_vector)=0
void Solve(std::vector< double > &solution, bool use_initial_guess=false)
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)
void AddToRHS(const std::vector< double > &values)
virtual void Assemble_b(const std::vector< double > &q_vector)=0
const chi_math::UnknownManager uk_man_
virtual ~DiffusionSolver()
virtual void AssembleAand_b(const std::vector< double > &q_vector)=0
const chi_math::SpatialDiscretization & SpatialDiscretization() const
const chi_mesh::MeshContinuum & grid_
const std::map< uint64_t, BoundaryCondition > bcs_
std::map< int, Multigroup_D_and_sigR > MatID2XSMap
const MatID2XSMap mat_id_2_xs_map_
std::pair< size_t, size_t > GetNumPhiIterativeUnknowns()
const std::string text_name_
const int64_t num_global_dofs_
const std::vector< UnitCellMatrices > & unit_cell_matrices_
int max_iters
Maximum iterations.
std::string source_lua_function
for mms
std::string ref_solution_lua_function
for mms
double residual_tolerance
Residual tol. relative to rhs.
bool verbose
Verbosity flag.
std::string additional_options_string
bool perform_symmetry_check
For debugging only (very expensive)