https://mooseframework.inl.gov
MFEMProblemData.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MOOSE_MFEM_ENABLED
11 
12 #pragma once
13 
14 #include "EquationSystem.h"
15 #include "ComplexEquationSystem.h"
16 #include "MFEMContainers.h"
17 #include "CoefficientManager.h"
18 #include "MFEMLinearSolverBase.h"
20 #include "MFEMRefinementMarker.h"
21 
24 {
25 public:
26  MFEMProblemData() = default;
27  virtual ~MFEMProblemData() { ode_solver.reset(); };
28 
29  std::shared_ptr<mfem::ParMesh> pmesh{nullptr};
32 
33  std::unique_ptr<mfem::ODESolver> ode_solver{nullptr};
35  mfem::BlockVector true_solution;
36 
37  std::shared_ptr<Moose::MFEM::EquationSystem> eqn_system{nullptr};
38  std::shared_ptr<Moose::MFEM::NonlinearSolverBase> nonlinear_solver{nullptr};
39  std::shared_ptr<Moose::MFEM::LinearSolverBase> jacobian_solver{nullptr};
40 
47 
48  std::string mode_separator{"_"};
49 
50  std::shared_ptr<MFEMRefinementMarker> refiner;
51 
52  MPI_Comm comm;
53  int myid;
54  int num_procs;
55 };
56 
57 #endif
std::shared_ptr< mfem::ParMesh > pmesh
Base problem data struct.
Moose::MFEM::ComplexGridFunctions cmplx_gridfunctions
std::shared_ptr< Moose::MFEM::LinearSolverBase > jacobian_solver
Front-end class for creating and storing MFEM coefficients.
Lightweight adaptor over a std::map relating names of GridFunctions with the name of their time deriv...
std::unique_ptr< mfem::ODESolver > ode_solver
Lightweight adaptor over an std::map from strings to pointer to T.
Moose::MFEM::FESpaces fespaces
Moose::MFEM::SubMeshes submeshes
Moose::MFEM::FECollections fecs
Moose::MFEM::CoefficientManager coefficients
Moose::MFEM::FESpaceHierarchies fespace_hierarchies
MFEMProblemData()=default
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system
std::shared_ptr< Moose::MFEM::NonlinearSolverBase > nonlinear_solver
std::shared_ptr< MFEMRefinementMarker > refiner
mfem::BlockVector true_solution
Persistent true-DoF solution vector backing trial grid functions after problem operator init...
std::string mode_separator
virtual ~MFEMProblemData()
Moose::MFEM::GridFunctions gridfunctions
Moose::MFEM::TimeDerivativeMap time_derivative_map