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

This file contains the declaration of an equation solver wrapper. More...

#include <memory>
#include <optional>
#include <variant>
#include <utility>
#include "mpi.h"
#include "mfem.hpp"
#include "serac/infrastructure/input.hpp"
#include "serac/numerics/solver_config.hpp"
#include "serac/numerics/petsc_solvers.hpp"
Include dependency graph for equation_solver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  serac::EquationSolver
 This class manages the objects typically required to solve a nonlinear set of equations arising from discretization of a PDE of the form F(x) = 0. Specifically, it has. More...
 
class  serac::SuperLUSolver
 A wrapper class for using the MFEM SuperLU solver with a HypreParMatrix. More...
 
struct  FromInlet< serac::LinearSolverOptions >
 Prototype the specialization for Inlet parsing. More...
 
struct  FromInlet< serac::NonlinearSolverOptions >
 Prototype the specialization for Inlet parsing. More...
 
struct  FromInlet< serac::EquationSolver >
 Prototype the specialization for Inlet parsing. More...
 

Namespaces

 serac
 Accelerator functionality.
 

Functions

std::unique_ptr< mfem::HypreParMatrix > serac::buildMonolithicMatrix (const mfem::BlockOperator &block_operator)
 Function for building a monolithic parallel Hypre matrix from a block system of smaller Hypre matrices. More...
 
std::unique_ptr< mfem::NewtonSolver > serac::buildNonlinearSolver (const NonlinearSolverOptions &nonlinear_opts, const LinearSolverOptions &linear_opts, mfem::Solver &preconditioner, MPI_Comm comm=MPI_COMM_WORLD)
 Build a nonlinear solver using the nonlinear option struct. More...
 
std::pair< std::unique_ptr< mfem::Solver >, std::unique_ptr< mfem::Solver > > serac::buildLinearSolverAndPreconditioner (LinearSolverOptions linear_opts={}, MPI_Comm comm=MPI_COMM_WORLD)
 Build the linear solver and its associated preconditioner given a linear options struct. More...
 
std::unique_ptr< mfem::Solver > serac::buildPreconditioner (LinearSolverOptions linear_opts,[[maybe_unused]] MPI_Comm comm=MPI_COMM_WORLD)
 Build a preconditioner from the available options. More...
 

Detailed Description

This file contains the declaration of an equation solver wrapper.

This file contains the declaration of a trust region subspace solver.

Definition in file equation_solver.hpp.