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
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
unit_test_utils::TestLinearSystem Class Reference

#include <UnitTestLinearSystem.h>

Inheritance diagram for unit_test_utils::TestLinearSystem:
sierra::nalu::LinearSystem

Public Member Functions

 TestLinearSystem (sierra::nalu::Realm &realm, const unsigned numDof, sierra::nalu::EquationSystem *eqSys)
 
virtual ~TestLinearSystem ()
 
virtual void buildNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildFaceToNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildEdgeToNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildElemToNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildReducedElemToNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildFaceElemToNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildNonConformalNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void buildOversetNodeGraph (const stk::mesh::PartVector &parts)
 
virtual void finalizeLinearSystem ()
 
virtual void zeroSystem ()
 
virtual void sumInto (unsigned numEntities, const stk::mesh::Entity *entities, const sierra::nalu::SharedMemView< const double * > &rhs, const sierra::nalu::SharedMemView< const double ** > &lhs, const sierra::nalu::SharedMemView< int * > &localIds, const sierra::nalu::SharedMemView< int * > &sortPermutation, const char *trace_tag)
 
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)
 
virtual void applyDirichletBCs (stk::mesh::FieldBase *solutionField, stk::mesh::FieldBase *bcValuesField, const stk::mesh::PartVector &parts, const unsigned beginPos, const unsigned endPos)
 
virtual void prepareConstraints (const unsigned beginPos, const unsigned endPos)
 
virtual int solve (stk::mesh::FieldBase *linearSolutionField)
 
virtual void loadComplete ()
 
virtual void writeToFile (const char *filename, bool useOwned=true)
 
virtual void writeSolutionToFile (const char *filename, bool useOwned=true)
 
virtual void resetRows (std::vector< stk::mesh::Entity > nodeList, const unsigned beginPos, const unsigned endPos)
 Reset LHS and RHS for the given set of nodes to 0. More...
 
- Public Member Functions inherited from sierra::nalu::LinearSystem
 LinearSystem (Realm &realm, const unsigned numDof, EquationSystem *eqSys, LinearSolver *linearSolver)
 
virtual ~LinearSystem ()
 
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 ()
 

Public Attributes

unsigned numSumIntoCalls_
 
Kokkos::View< double ** > lhs_
 
Kokkos::View< double * > rhs_
 
- Public Attributes inherited from sierra::nalu::LinearSystem
bool provideOutput_
 

Protected Member Functions

virtual void beginLinearSystemConstruction ()
 
virtual void checkError (const int err_code, const char *msg)
 
- Protected Member Functions inherited from sierra::nalu::LinearSystem
void sync_field (const stk::mesh::FieldBase *field)
 
bool debug ()
 

Additional Inherited Members

- Static Public Member Functions inherited from sierra::nalu::LinearSystem
static LinearSystemcreate (Realm &realm, const unsigned numDof, EquationSystem *eqSys, LinearSolver *linearSolver)
 
- Protected Attributes inherited from sierra::nalu::LinearSystem
Realmrealm_
 
EquationSystemeqSys_
 
bool inConstruction_
 
int writeCounter_
 
const unsigned numDof_
 
const std::string eqSysName_
 
LinearSolverlinearSolver_
 
int linearSolveIterations_
 
double nonLinearResidual_
 
double linearResidual_
 
double firstNonLinearResidual_
 
double scaledNonLinearResidual_
 
bool recomputePreconditioner_
 
bool reusePreconditioner_
 

Constructor & Destructor Documentation

unit_test_utils::TestLinearSystem::TestLinearSystem ( sierra::nalu::Realm realm,
const unsigned  numDof,
sierra::nalu::EquationSystem eqSys 
)
inline
virtual unit_test_utils::TestLinearSystem::~TestLinearSystem ( )
inlinevirtual

Member Function Documentation

virtual void unit_test_utils::TestLinearSystem::applyDirichletBCs ( stk::mesh::FieldBase *  solutionField,
stk::mesh::FieldBase *  bcValuesField,
const stk::mesh::PartVector parts,
const unsigned  beginPos,
const unsigned  endPos 
)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::beginLinearSystemConstruction ( )
inlineprotectedvirtual
virtual void unit_test_utils::TestLinearSystem::buildEdgeToNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildElemToNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildFaceElemToNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildFaceToNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildNonConformalNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildOversetNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::buildReducedElemToNodeGraph ( const stk::mesh::PartVector parts)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::checkError ( const int  err_code,
const char *  msg 
)
inlineprotectedvirtual
virtual void unit_test_utils::TestLinearSystem::finalizeLinearSystem ( )
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::loadComplete ( )
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::prepareConstraints ( const unsigned  beginPos,
const unsigned  endPos 
)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::resetRows ( std::vector< stk::mesh::Entity >  nodeList,
const unsigned  beginPos,
const unsigned  endPos 
)
inlinevirtual

Reset LHS and RHS for the given set of nodes to 0.

Parameters
nodeListA list of STK node entities whose rows are zeroed out
beginPosStarting index (usually 0)
endPosTerminating index (1 for scalar quantities; nDim for vectors)

Implements sierra::nalu::LinearSystem.

virtual int unit_test_utils::TestLinearSystem::solve ( stk::mesh::FieldBase *  linearSolutionField)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::sumInto ( unsigned  numEntities,
const stk::mesh::Entity *  entities,
const sierra::nalu::SharedMemView< const double * > &  rhs,
const sierra::nalu::SharedMemView< const double ** > &  lhs,
const sierra::nalu::SharedMemView< int * > &  localIds,
const sierra::nalu::SharedMemView< int * > &  sortPermutation,
const char *  trace_tag 
)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::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 
)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::writeSolutionToFile ( const char *  filename,
bool  useOwned = true 
)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::writeToFile ( const char *  filename,
bool  useOwned = true 
)
inlinevirtual
virtual void unit_test_utils::TestLinearSystem::zeroSystem ( )
inlinevirtual

Member Data Documentation

Kokkos::View<double**> unit_test_utils::TestLinearSystem::lhs_

Referenced by sumInto(), and TEST_F().

unsigned unit_test_utils::TestLinearSystem::numSumIntoCalls_

Referenced by sumInto(), and TEST_F().

Kokkos::View<double*> unit_test_utils::TestLinearSystem::rhs_

Referenced by sumInto(), and TEST_F().


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