https://mooseframework.inl.gov
MFEMComplexCurlAux.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 "libmesh/ignore_warnings.h"
15 #include "mfem/miniapps/common/pfem_extras.hpp"
16 #include "libmesh/restore_warnings.h"
17 #include "MFEMComplexAuxKernel.h"
18 
23 {
24 public:
26 
28 
29  virtual ~MFEMComplexCurlAux() = default;
30 
32  virtual void execute() override;
33 
34  // Updates curl operator.
35  virtual void update() override;
36 
37 protected:
39  const VariableName _source_var_name;
41  mfem::ParComplexGridFunction & _source_var;
43  const std::complex<mfem::real_t> _scale_factor;
45  mfem::common::ParDiscreteCurlOperator _curl;
46 };
47 
48 #endif
mfem::common::ParDiscreteCurlOperator _curl
Curl operator.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Class to set an H(div) auxvariable to be the curl of an H(curl) vector variable.
MFEMComplexCurlAux(const InputParameters &parameters)
const VariableName _source_var_name
Name of source MFEMComplexVariable to take the curl of.
static InputParameters validParams()
const std::complex< mfem::real_t > _scale_factor
Scalar factor to multiply the result by.
virtual ~MFEMComplexCurlAux()=default
mfem::ParComplexGridFunction & _source_var
Reference to source gridfunction.
virtual void update() override
Method called to update any owned objects upon an FE space update.
virtual void execute() override
Computes the auxvariable.
Class to construct an auxiliary solver used to update a complex auxvariable.