Serac  0.1
Serac is an implicit thermal strucural mechanics simulation code.
Classes | Namespaces | Enumerations | Functions | Variables
solver_config.hpp File Reference

This file contains enumerations and record types for physics solver configuration. More...

#include <variant>
#include "mfem.hpp"
#include "axom/fmt.hpp"
Include dependency graph for solver_config.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  serac::TimesteppingOptions
 A timestep and boundary condition enforcement method for a dynamic solver. More...
 
struct  serac::AMGXOptions
 Stores the information required to configure a NVIDIA AMGX preconditioner. More...
 
struct  serac::LinearSolverOptions
 Parameters for an iterative linear solution scheme. More...
 
struct  serac::NonlinearSolverOptions
 Nonlinear solution scheme parameters. More...
 
struct  axom::fmt::formatter< serac::NonlinearSolver >
 
struct  axom::fmt::formatter< serac::LinearSolver >
 
struct  axom::fmt::formatter< serac::Preconditioner >
 
struct  axom::fmt::formatter< serac::PetscPCType >
 

Namespaces

 serac
 Accelerator functionality.
 

Enumerations

enum class  serac::TimestepMethod {
  serac::QuasiStatic , serac::BackwardEuler , serac::SDIRK33 , serac::ForwardEuler ,
  serac::RK2 , serac::RK3SSP , serac::RK4 , serac::GeneralizedAlpha ,
  serac::ImplicitMidpoint , serac::SDIRK23 , serac::SDIRK34 , serac::Newmark ,
  serac::HHTAlpha , serac::WBZAlpha , serac::AverageAcceleration , serac::LinearAcceleration ,
  serac::CentralDifference , serac::FoxGoodwin
}
 Timestep method of a solver. More...
 
enum class  serac::DirichletEnforcementMethod { serac::DirectControl , serac::RateControl , serac::FullControl }
 this enum describes which way to enforce the time-varying constraint u(t) == U(t) More...
 
enum class  serac::LinearSolver {
  serac::CG , serac::GMRES , serac::SuperLU , serac::Strumpack ,
  serac::PetscCG , serac::PetscGMRES
}
 Linear solution method indicator. More...
 
enum class  serac::NonlinearSolver {
  serac::Newton , serac::LBFGS , serac::NewtonLineSearch , serac::TrustRegion ,
  serac::KINFullStep , serac::KINBacktrackingLineSearch , serac::KINPicard , serac::PetscNewton ,
  serac::PetscNewtonBacktracking , serac::PetscNewtonCriticalPoint , serac::PetscTrustRegion
}
 Nonlinear solver method indicator. More...
 
enum class  serac::AMGXSolver {
  serac::AMG , serac::PCGF , serac::CG , serac::PCG ,
  serac::PBICGSTAB , serac::BICGSTAB , serac::FGMRES , serac::JACOBI_L1 ,
  serac::GS , serac::POLYNOMIAL , serac::KPZ_POLYNOMIAL , serac::BLOCK_JACOBI ,
  serac::MULTICOLOR_GS , serac::MULTICOLOR_DILU
}
 Solver types supported by AMGX. More...
 
enum class  serac::PetscPCType {
  serac::JACOBI , serac::JACOBI_L1 , serac::JACOBI_ROWSUM , serac::JACOBI_ROWMAX ,
  serac::PBJACOBI , serac::BJACOBI , serac::LU , serac::ILU ,
  serac::CHOLESKY , serac::SVD , serac::ASM , serac::GASM ,
  serac::GAMG , serac::HMG , serac::NONE
}
 Preconditioner types supported by PETSc. More...
 
enum class  serac::Preconditioner {
  serac::HypreJacobi , serac::HypreL1Jacobi , serac::HypreGaussSeidel , serac::HypreAMG ,
  serac::HypreILU , serac::AMGX , serac::Petsc , serac::None
}
 The type of preconditioner to be used. More...
 
enum  serac::SubSpaceOptions { NEVER , WHEN_INDEFINITE , WHEN_INDEFINITE_OR_BOUNDARY , ALWAYS }
 Enumerated options for when to use trust-region subspace solver.
 

Functions

std::string serac::linearName (const LinearSolver &s)
 Convert linear solver enums to their string names.
 
std::ostream & serac::operator<< (std::ostream &os, LinearSolver s)
 output linear solver string representation to a stream
 
std::string serac::nonlinearName (const NonlinearSolver &s)
 Convert nonlinear linear solver enums to their string names.
 
std::ostream & serac::operator<< (std::ostream &os, NonlinearSolver s)
 output nonlinear solver string representation to a stream
 
std::string serac::petscPCName (const PetscPCType &s)
 Convert Petsc preconditioner enums to their string names.
 
std::ostream & serac::operator<< (std::ostream &os, PetscPCType s)
 output PETSc preconditioner string representation to a stream
 
std::string serac::preconditionerName (Preconditioner p)
 Convert preconditioner enums to their string names.
 
std::ostream & serac::operator<< (std::ostream &os, Preconditioner p)
 output preconditioner string representation to a stream
 

Variables

std::map< std::string, LinearSolver > serac::linearSolverMap
 string->value matching for optionally entering options as string in command line More...
 
std::map< std::string, NonlinearSolver > serac::nonlinearSolverMap
 string->value matching for optionally entering options as string in command line More...
 
std::map< std::string, Preconditioner > serac::preconditionerMap
 string->value matching for optionally entering options as string in command line More...
 

Detailed Description

This file contains enumerations and record types for physics solver configuration.

Definition in file solver_config.hpp.