https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComplexEquationSystemProblemOperator.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
15
16namespace Moose::MFEM
17{
20{
21
22public:
29
30 virtual void SetGridFunctions() override;
31 virtual void Solve() override;
32
33 [[nodiscard]] virtual Moose::MFEM::ComplexEquationSystem * GetEquationSystem() const override
34 {
35 mooseAssert(_equation_system,
36 "No ComplexEquationSystem in ComplexEquationSystemProblemOperator.");
37 return _equation_system.get();
38 }
39
40private:
41 std::shared_ptr<Moose::MFEM::ComplexEquationSystem> _equation_system{nullptr};
42 std::vector<mfem::ParComplexGridFunction *> _cmplx_trial_variables;
43 std::vector<mfem::ParComplexGridFunction *> _cmplx_test_variables;
44};
45
46} // namespace Moose::MFEM
47
48#endif
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
Steady-state problem operator with an equation system.
std::vector< mfem::ParComplexGridFunction * > _cmplx_trial_variables
std::shared_ptr< Moose::MFEM::ComplexEquationSystem > _equation_system
virtual Moose::MFEM::ComplexEquationSystem * GetEquationSystem() const override
Returns a pointer to the operator's equation system.
std::vector< mfem::ParComplexGridFunction * > _cmplx_test_variables
Steady-state ProblemOperator that prepares and solves a single EquationSystem.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...