https://mooseframework.inl.gov
MFEMComplexIntegratedBC.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 "MFEMIntegratedBC.h"
15 
17 {
18 public:
20 
22  virtual ~MFEMComplexIntegratedBC() = default;
23 
24  virtual mfem::LinearFormIntegrator * getRealLFIntegrator()
25  {
26  return _real_bc->createLFIntegrator();
27  }
28  virtual mfem::LinearFormIntegrator * getImagLFIntegrator()
29  {
30  return _imag_bc->createLFIntegrator();
31  }
32  virtual mfem::BilinearFormIntegrator * getRealBFIntegrator()
33  {
34  return _real_bc->createBFIntegrator();
35  }
36  virtual mfem::BilinearFormIntegrator * getImagBFIntegrator()
37  {
38  return _imag_bc->createBFIntegrator();
39  }
40 
41  virtual void setRealBC(std::shared_ptr<MFEMIntegratedBC> bc) { _real_bc = bc; }
42  virtual void setImagBC(std::shared_ptr<MFEMIntegratedBC> bc) { _imag_bc = bc; }
43 
46  virtual const std::string & getTrialVariableName() const { return _test_var_name; }
47 
48 protected:
49  std::shared_ptr<MFEMIntegratedBC> _real_bc{nullptr};
50  std::shared_ptr<MFEMIntegratedBC> _imag_bc{nullptr};
51 };
52 
53 #endif
virtual void setRealBC(std::shared_ptr< MFEMIntegratedBC > bc)
virtual ~MFEMComplexIntegratedBC()=default
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
virtual mfem::LinearFormIntegrator * getRealLFIntegrator()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual mfem::LinearFormIntegrator * getImagLFIntegrator()
virtual void setImagBC(std::shared_ptr< MFEMIntegratedBC > bc)
const VariableName & _test_var_name
Name of (the test variable associated with) the weak form that the bc is applied to.
virtual mfem::BilinearFormIntegrator * getRealBFIntegrator()
static InputParameters validParams()
std::shared_ptr< MFEMIntegratedBC > _real_bc
virtual const std::string & getTrialVariableName() const
Get name of the trial variable (gridfunction) the bc acts on.
virtual mfem::BilinearFormIntegrator * getImagBFIntegrator()
MFEMComplexIntegratedBC(const InputParameters &parameters)
std::shared_ptr< MFEMIntegratedBC > _imag_bc