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};
34  mfem::BlockVector f;
35 
36  std::shared_ptr<Moose::MFEM::EquationSystem> eqn_system{nullptr};
37  std::shared_ptr<Moose::MFEM::NonlinearSolverBase> nonlinear_solver{nullptr};
38 
39  std::shared_ptr<Moose::MFEM::LinearSolverBase> jacobian_solver{nullptr};
40 
46 
47  std::string mode_separator{"_"};
48 
49  std::shared_ptr<MFEMRefinementMarker> refiner;
50 
51  MPI_Comm comm;
52  int myid;
53  int num_procs;
54 };
55 
56 #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
Moose::MFEM::FESpaces fespaces
Moose::MFEM::SubMeshes submeshes
Moose::MFEM::FECollections fecs
Moose::MFEM::CoefficientManager coefficients
mfem::BlockVector f
MFEMProblemData()=default
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system
std::shared_ptr< Moose::MFEM::NonlinearSolverBase > nonlinear_solver
std::shared_ptr< MFEMRefinementMarker > refiner
std::string mode_separator
virtual ~MFEMProblemData()
Moose::MFEM::GridFunctions gridfunctions
Moose::MFEM::TimeDerivativeMap time_derivative_map