10 #ifdef MOOSE_MFEM_ENABLED 16 #include "mfem/fem/fespace.hpp" 27 _var(*getMFEMProblem().getComplexGridFunction(_var_name)),
28 _real_interp_vals(points.size()),
29 _imag_interp_vals(points.size())
31 const auto val_dim =
_var.real().VectorDim();
35 real_declared.resize(points.size());
39 imag_declared.resize(points.size());
47 return _var.real().FESpace()->FEColl()->GetContType();
63 const auto val_dims =
_var.real().VectorDim();
65 const auto val_fespace_ordering =
_var.real().FESpace()->GetOrdering();
67 for (
const auto i_point :
make_range(num_points))
76 #endif // MOOSE_MFEM_ENABLED static InputParameters validParams()
mfem::Vector _imag_interp_vals
Values interpolated from the imaginary part of the grid function.
MFEMComplexVariableValueSamplerBase(const InputParameters ¶meters, const std::vector< Point > &points)
std::vector< std::reference_wrapper< VectorPostprocessorValue > > _declared_imag_vals
VectorPostprocessor output columns for the imaginary components.
std::vector< std::reference_wrapper< VectorPostprocessorValue > > _declared_real_vals
VectorPostprocessor output columns for the real components.
Base class for sampling real or complex MFEM variables at points.
void execute() override
Interpolate the real and imaginary parts of the complex variable.
VectorPostprocessorValue & declareVector(const std::string &vector_name)
Register a new vector to fill up.
const mfem::ParComplexGridFunction & _var
Complex grid function being sampled.
std::size_t MFEMIndex(const std::size_t i_dim, const std::size_t i_point, const std::size_t num_dims, const std::size_t num_points, const mfem::Ordering::Type ordering)
Convert an index of a vector of libMesh::Points to an MFEM vector index, given an MFEM ordering...
int getFESpaceContinuityType() const override
Return the continuity type of the sampled variable's finite element collection.
mfem::Vector _real_interp_vals
Values interpolated from the real part of the grid function.
std::vector< std::reference_wrapper< VectorPostprocessorValue > > _declared_points
Declared VPP output vectors for spatial coordinates ("x_0", "x_1", ...).
mfem::FindPointsGSLIB _finder
GSLIB point finder used to locate and interpolate the query points.
IntRange< T > make_range(T beg, T end)
static InputParameters validParams()
auto index_range(const T &sizable)
void finalizeValues() override
Copies interpolated values into the subclass VPP vectors.
const VariableName _var_name
Name of the variable being sampled.