MFEMProblemData
Summary
MFEMProblemData
stores and owns the required data associated with a snapshot of the MFEM finite element problem.
Overview
Data stored in the MFEMProblemData
struct is built and added to by builder methods in MFEMProblem
.
#ifdef MFEM_ENABLED
#pragma once
#include "EquationSystem.h"
#include "MFEMContainers.h"
#include "CoefficientManager.h"
#include "MFEMSolverBase.h"
#include <fstream>
#include <iostream>
#include <memory>
/// Base problem data struct.
struct MFEMProblemData
{
public:
MFEMProblemData() = default;
virtual ~MFEMProblemData() { ode_solver.reset(); };
std::shared_ptr<mfem::ParMesh> pmesh{nullptr};
Moose::MFEM::SubMeshes submeshes;
Moose::MFEM::CoefficientManager coefficients;
std::unique_ptr<mfem::ODESolver> ode_solver{nullptr};
mfem::BlockVector f;
std::shared_ptr<Moose::MFEM::EquationSystem> eqn_system{nullptr};
std::shared_ptr<mfem::NewtonSolver> nonlinear_solver{nullptr};
std::shared_ptr<MFEMSolverBase> jacobian_solver{nullptr};
Moose::MFEM::FECollections fecs;
Moose::MFEM::FESpaces fespaces;
Moose::MFEM::GridFunctions gridfunctions;
MPI_Comm comm;
int myid;
int num_procs;
};
#endif
(framework/include/mfem/problem/MFEMProblemData.h)