![]() |
Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
|
#include <LinearSystem.h>
Public Member Functions | |
| LinearSystem (Realm &realm, const unsigned numDof, EquationSystem *eqSys, LinearSolver *linearSolver) | |
| virtual | ~LinearSystem () |
| virtual void | buildNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildFaceToNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildEdgeToNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildElemToNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildReducedElemToNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildFaceElemToNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildNonConformalNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | buildOversetNodeGraph (const stk::mesh::PartVector &parts)=0 |
| virtual void | finalizeLinearSystem ()=0 |
| virtual void | zeroSystem ()=0 |
| virtual void | sumInto (unsigned numEntities, const stk::mesh::Entity *entities, const SharedMemView< const double * > &rhs, const SharedMemView< const double ** > &lhs, const SharedMemView< int * > &localIds, const SharedMemView< int * > &sortPermutation, const char *trace_tag)=0 |
| virtual void | sumInto (const std::vector< stk::mesh::Entity > &sym_meshobj, std::vector< int > &scratchIds, std::vector< double > &scratchVals, const std::vector< double > &rhs, const std::vector< double > &lhs, const char *trace_tag=0)=0 |
| virtual void | applyDirichletBCs (stk::mesh::FieldBase *solutionField, stk::mesh::FieldBase *bcValuesField, const stk::mesh::PartVector &parts, const unsigned beginPos, const unsigned endPos)=0 |
| virtual void | prepareConstraints (const unsigned beginPos, const unsigned endPos)=0 |
| virtual void | resetRows (std::vector< stk::mesh::Entity > nodeList, const unsigned beginPos, const unsigned endPos)=0 |
| Reset LHS and RHS for the given set of nodes to 0. More... | |
| virtual int | solve (stk::mesh::FieldBase *linearSolutionField)=0 |
| virtual void | loadComplete ()=0 |
| virtual void | writeToFile (const char *filename, bool useOwned=true)=0 |
| virtual void | writeSolutionToFile (const char *filename, bool useOwned=true)=0 |
| unsigned | numDof () const |
| const int & | linearSolveIterations () |
| const double & | linearResidual () |
| const double & | nonLinearResidual () |
| const double & | scaledNonLinearResidual () |
| void | setNonLinearResidual (const double nlr) |
| const std::string | name () |
| bool & | recomputePreconditioner () |
| bool & | reusePreconditioner () |
| double | get_timer_precond () |
| void | zero_timer_precond () |
Static Public Member Functions | |
| static LinearSystem * | create (Realm &realm, const unsigned numDof, EquationSystem *eqSys, LinearSolver *linearSolver) |
Public Attributes | |
| bool | provideOutput_ |
Protected Member Functions | |
| virtual void | beginLinearSystemConstruction ()=0 |
| virtual void | checkError (const int err_code, const char *msg)=0 |
| void | sync_field (const stk::mesh::FieldBase *field) |
| bool | debug () |
Protected Attributes | |
| Realm & | realm_ |
| EquationSystem * | eqSys_ |
| bool | inConstruction_ |
| int | writeCounter_ |
| const unsigned | numDof_ |
| const std::string | eqSysName_ |
| LinearSolver * | linearSolver_ |
| int | linearSolveIterations_ |
| double | nonLinearResidual_ |
| double | linearResidual_ |
| double | firstNonLinearResidual_ |
| double | scaledNonLinearResidual_ |
| bool | recomputePreconditioner_ |
| bool | reusePreconditioner_ |
| sierra::nalu::LinearSystem::LinearSystem | ( | Realm & | realm, |
| const unsigned | numDof, | ||
| EquationSystem * | eqSys, | ||
| LinearSolver * | linearSolver | ||
| ) |
|
inlinevirtual |
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::DirichletBC::execute().
|
protectedpure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleMomentumEdgeSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleContinuityEdgeSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleRadTransEdgeUpwindSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleRadTransEdgeSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarEdgeDiffSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarEdgeSolverAlgorithm::initialize_connectivity(), and sierra::nalu::AssembleScalarEigenEdgeSolverAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleContinuityElemSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleElemSolverAlgorithmDep::initialize_connectivity(), sierra::nalu::AssembleMeshDisplacementElemSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumElemSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleRadTransElemSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssemblePNGElemSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleElemSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarElemDiffSolverAlgorithm::initialize_connectivity(), and sierra::nalu::AssembleScalarElemSolverAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleMomentumEdgeOpenSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumEdgeSymmetrySolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleContinuityElemOpenSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleContinuityEdgeOpenSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumElemSymmetrySolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumElemOpenSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssemblePressureForceBCSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarEdgeOpenSolverAlgorithm::initialize_connectivity(), and sierra::nalu::AssembleScalarElemOpenSolverAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleContinuityInflowSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleHeatCondIrradWallSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleHeatCondWallSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumEdgeWallFunctionSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssemblePNGBoundarySolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumElemWallFunctionSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarFluxBCSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleRadTransWallSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleMomentumEdgeABLWallFunctionSolverAlgorithm::initialize_connectivity(), and sierra::nalu::AssembleMomentumElemABLWallFunctionSolverAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleNodeSolverAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleMomentumNonConformalSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarNonConformalSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssembleScalarDiffNonConformalSolverAlgorithm::initialize_connectivity(), sierra::nalu::AssemblePNGNonConformalSolverAlgorithm::initialize_connectivity(), and sierra::nalu::AssembleContinuityNonConformalSolverAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleOversetSolverConstraintAlgorithm::initialize_connectivity().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
|
protectedpure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
|
static |
References sierra::nalu::LinearSolver::getType(), sierra::nalu::PT_END, and sierra::nalu::PT_TPETRA.
Referenced by sierra::nalu::ContinuityEquationSystem::ContinuityEquationSystem(), sierra::nalu::EnthalpyEquationSystem::EnthalpyEquationSystem(), sierra::nalu::HeatCondEquationSystem::HeatCondEquationSystem(), sierra::nalu::MassFractionEquationSystem::MassFractionEquationSystem(), sierra::nalu::MeshDisplacementEquationSystem::MeshDisplacementEquationSystem(), sierra::nalu::MixtureFractionEquationSystem::MixtureFractionEquationSystem(), sierra::nalu::MomentumEquationSystem::MomentumEquationSystem(), sierra::nalu::ProjectedNodalGradientEquationSystem::ProjectedNodalGradientEquationSystem(), sierra::nalu::RadiativeTransportEquationSystem::RadiativeTransportEquationSystem(), sierra::nalu::MeshDisplacementEquationSystem::reinitialize_linear_system(), sierra::nalu::TurbKineticEnergyEquationSystem::reinitialize_linear_system(), sierra::nalu::SpecificDissipationRateEquationSystem::reinitialize_linear_system(), sierra::nalu::HeatCondEquationSystem::reinitialize_linear_system(), sierra::nalu::EnthalpyEquationSystem::reinitialize_linear_system(), sierra::nalu::MixtureFractionEquationSystem::reinitialize_linear_system(), sierra::nalu::ProjectedNodalGradientEquationSystem::reinitialize_linear_system(), sierra::nalu::MomentumEquationSystem::reinitialize_linear_system(), sierra::nalu::ContinuityEquationSystem::reinitialize_linear_system(), sierra::nalu::SpecificDissipationRateEquationSystem::SpecificDissipationRateEquationSystem(), and sierra::nalu::TurbKineticEnergyEquationSystem::TurbKineticEnergyEquationSystem().
|
protected |
References sierra::nalu::Simulation::debug(), linearSolver_, and sierra::nalu::LinearSolver::root().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::MeshDisplacementEquationSystem::initialize(), sierra::nalu::RadiativeTransportEquationSystem::initialize(), sierra::nalu::TurbKineticEnergyEquationSystem::initialize(), sierra::nalu::SpecificDissipationRateEquationSystem::initialize(), sierra::nalu::MassFractionEquationSystem::initialize(), sierra::nalu::HeatCondEquationSystem::initialize(), sierra::nalu::EnthalpyEquationSystem::initialize(), sierra::nalu::MixtureFractionEquationSystem::initialize(), sierra::nalu::ProjectedNodalGradientEquationSystem::initialize(), sierra::nalu::MomentumEquationSystem::initialize(), sierra::nalu::ContinuityEquationSystem::initialize(), sierra::nalu::MeshDisplacementEquationSystem::reinitialize_linear_system(), sierra::nalu::TurbKineticEnergyEquationSystem::reinitialize_linear_system(), sierra::nalu::SpecificDissipationRateEquationSystem::reinitialize_linear_system(), sierra::nalu::HeatCondEquationSystem::reinitialize_linear_system(), sierra::nalu::EnthalpyEquationSystem::reinitialize_linear_system(), sierra::nalu::MixtureFractionEquationSystem::reinitialize_linear_system(), sierra::nalu::ProjectedNodalGradientEquationSystem::reinitialize_linear_system(), sierra::nalu::MomentumEquationSystem::reinitialize_linear_system(), and sierra::nalu::ContinuityEquationSystem::reinitialize_linear_system().
| double sierra::nalu::LinearSystem::get_timer_precond | ( | ) |
References sierra::nalu::LinearSolver::get_timer_precond(), and linearSolver_.
Referenced by sierra::nalu::EquationSystem::dump_eq_time().
|
inline |
|
inline |
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::EquationSystem::assemble_and_solve().
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::AssembleOversetSolverConstraintAlgorithm::prepare_constraints().
|
inline |
|
pure virtual |
Reset LHS and RHS for the given set of nodes to 0.
| nodeList | A list of STK node entities whose rows are zeroed out |
| beginPos | Starting index (usually 0) |
| endPos | Terminating index (1 for scalar quantities; nDim for vectors) |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::FixPressureAtNodeAlgorithm::execute().
|
inline |
|
inline |
|
inline |
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::EquationSystem::assemble_and_solve().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::SolverAlgorithm::apply_coeff().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
|
protected |
References sierra::nalu::Realm::bulk_data(), and realm_.
Referenced by sierra::nalu::TpetraLinearSystem::solve().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
| void sierra::nalu::LinearSystem::zero_timer_precond | ( | ) |
References linearSolver_, and sierra::nalu::LinearSolver::zero_timer_precond().
Referenced by sierra::nalu::EquationSystem::dump_eq_time().
|
pure virtual |
Implemented in sierra::nalu::TpetraLinearSystem, and unit_test_utils::TestLinearSystem.
Referenced by sierra::nalu::EquationSystem::assemble_and_solve().
|
protected |
|
protected |
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::solve().
|
protected |
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::solve().
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::solve().
|
protected |
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::solve().
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::applyDirichletBCs(), sierra::nalu::TpetraLinearSystem::beginLinearSystemConstruction(), sierra::nalu::TpetraLinearSystem::checkForZeroRow(), sierra::nalu::TpetraLinearSystem::compute_graph_row_lengths(), sierra::nalu::TpetraLinearSystem::copy_tpetra_to_stk(), sierra::nalu::TpetraLinearSystem::insert_graph_connections(), sierra::nalu::TpetraLinearSystem::prepareConstraints(), sierra::nalu::TpetraLinearSystem::resetRows(), and sierra::nalu::TpetraLinearSystem::sumInto().
| bool sierra::nalu::LinearSystem::provideOutput_ |
Referenced by sierra::nalu::ProjectedNodalGradientEquationSystem::deactivate_output(), sierra::nalu::MassFractionEquationSystem::MassFractionEquationSystem(), sierra::nalu::RadiativeTransportEquationSystem::RadiativeTransportEquationSystem(), sierra::nalu::ProjectedNodalGradientEquationSystem::reinitialize_linear_system(), and sierra::nalu::TpetraLinearSystem::solve().
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::addConnections(), sierra::nalu::TpetraLinearSystem::applyDirichletBCs(), sierra::nalu::TpetraLinearSystem::beginLinearSystemConstruction(), sierra::nalu::TpetraLinearSystem::buildEdgeToNodeGraph(), sierra::nalu::TpetraLinearSystem::buildElemToNodeGraph(), sierra::nalu::TpetraLinearSystem::buildFaceElemToNodeGraph(), sierra::nalu::TpetraLinearSystem::buildFaceToNodeGraph(), sierra::nalu::TpetraLinearSystem::buildNodeGraph(), sierra::nalu::TpetraLinearSystem::buildNonConformalNodeGraph(), sierra::nalu::TpetraLinearSystem::buildOversetNodeGraph(), sierra::nalu::TpetraLinearSystem::buildReducedElemToNodeGraph(), sierra::nalu::TpetraLinearSystem::checkForZeroRow(), sierra::nalu::TpetraLinearSystem::compute_graph_row_lengths(), sierra::nalu::TpetraLinearSystem::copy_stk_to_tpetra(), sierra::nalu::TpetraLinearSystem::copy_tpetra_to_stk(), sierra::nalu::TpetraLinearSystem::fill_entity_to_LID_mapping(), sierra::nalu::TpetraLinearSystem::finalizeLinearSystem(), sierra::nalu::TpetraLinearSystem::getDofStatus(), sierra::nalu::TpetraLinearSystem::insert_graph_connections(), sierra::nalu::TpetraLinearSystem::prepareConstraints(), sierra::nalu::TpetraLinearSystem::printInfo(), sierra::nalu::TpetraLinearSystem::resetRows(), sierra::nalu::TpetraLinearSystem::solve(), sync_field(), sierra::nalu::TpetraLinearSystem::writeSolutionToFile(), and sierra::nalu::TpetraLinearSystem::writeToFile().
|
protected |
|
protected |
|
protected |
Referenced by sierra::nalu::TpetraLinearSystem::solve().
|
protected |
1.8.11