Serac
0.1
Serac is an implicit thermal strucural mechanics simulation code.
|
Class for encapsulating the data associated with a vector derived from a MFEM finite element space. Specifically, it contains the information needed for both primal finite element state fields and dual finite element vectors. More...
#include <finite_element_vector.hpp>
Public Member Functions | |
FiniteElementVector (const mfem::ParFiniteElementSpace &space, const std::string &name="") | |
Minimal constructor for a FiniteElementVector given a finite element space. More... | |
template<typename FunctionSpace > | |
FiniteElementVector (mfem::ParMesh &mesh, FunctionSpace, const std::string &name="") | |
Construct a new Finite Element Vector object given a templated function space. More... | |
FiniteElementVector (const FiniteElementVector &rhs) | |
Copy constructor. More... | |
FiniteElementVector (FiniteElementVector &&rhs) | |
Move construct a new Finite Element Vector object. More... | |
FiniteElementVector & | operator= (const FiniteElementVector &rhs) |
Copy assignment. More... | |
FiniteElementVector & | operator= (FiniteElementVector &&rhs) |
Move assignment. More... | |
FiniteElementVector & | operator= (const mfem::HypreParVector &rhs) |
Copy assignment from a hypre par vector. More... | |
FiniteElementVector & | operator= (const mfem::Vector &rhs) |
Copy assignment from a hypre par vector. More... | |
MPI_Comm | comm () const |
Returns the MPI communicator for the state. More... | |
mfem::ParMesh & | mesh () |
Returns a non-owning reference to the internal mesh object. More... | |
const mfem::ParMesh & | mesh () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
mfem::ParFiniteElementSpace & | space () |
Returns a non-owning reference to the internal FESpace. More... | |
const mfem::ParFiniteElementSpace & | space () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
std::string | name () const |
Returns the name of the FEState (field) More... | |
FiniteElementVector & | operator= (const double value) |
Set a finite element state to a constant value. More... | |
virtual | ~FiniteElementVector () |
Destroy the Finite Element Vector object. | |
Protected Attributes | |
std::reference_wrapper< mfem::ParMesh > | mesh_ |
A reference to the mesh object on which the field is defined. | |
std::unique_ptr< mfem::FiniteElementCollection > | coll_ |
Handle to the FiniteElementCollection, which is owned by MFEMSidreDataCollection. More... | |
std::unique_ptr< mfem::ParFiniteElementSpace > | space_ |
Handle to the mfem::ParFiniteElementSpace, which is owned by MFEMSidreDataCollection. | |
std::string | name_ = "" |
The name of the finite element vector. | |
Class for encapsulating the data associated with a vector derived from a MFEM finite element space. Specifically, it contains the information needed for both primal finite element state fields and dual finite element vectors.
Namely: Mesh, FiniteElementCollection, FiniteElementSpace, name, and a HypreParVector containing the true degrees of freedom for the field.
Definition at line 49 of file finite_element_vector.hpp.
serac::FiniteElementVector::FiniteElementVector | ( | const mfem::ParFiniteElementSpace & | space, |
const std::string & | name = "" |
||
) |
Minimal constructor for a FiniteElementVector given a finite element space.
[in] | space | The space to use for the finite element state. This space is deep copied into the new FE state |
[in] | name | The name of the field |
Definition at line 12 of file finite_element_vector.cpp.
|
inline |
Construct a new Finite Element Vector object given a templated function space.
FunctionSpace | what kind of interpolating functions to use |
mesh | The mesh used to construct the finite element state |
name | The name of the new finite element state field |
Definition at line 66 of file finite_element_vector.hpp.
|
inline |
Copy constructor.
[in] | rhs | The input vector used for construction |
Definition at line 109 of file finite_element_vector.hpp.
serac::FiniteElementVector::FiniteElementVector | ( | FiniteElementVector && | rhs | ) |
Move construct a new Finite Element Vector object.
[in] | rhs | The input vector used for construction |
Definition at line 32 of file finite_element_vector.cpp.
|
inline |
Returns the MPI communicator for the state.
Definition at line 157 of file finite_element_vector.hpp.
|
inline |
Returns a non-owning reference to the internal mesh object.
Definition at line 163 of file finite_element_vector.hpp.
|
inline |
Returns the name of the FEState (field)
Definition at line 179 of file finite_element_vector.hpp.
FiniteElementVector & serac::FiniteElementVector::operator= | ( | const double | value | ) |
Set a finite element state to a constant value.
value | The constant to set the finite element state to |
Definition at line 83 of file finite_element_vector.cpp.
FiniteElementVector & serac::FiniteElementVector::operator= | ( | const FiniteElementVector & | rhs | ) |
Copy assignment.
rhs | The right hand side input vector |
Definition at line 59 of file finite_element_vector.cpp.
FiniteElementVector & serac::FiniteElementVector::operator= | ( | const mfem::HypreParVector & | rhs | ) |
Copy assignment from a hypre par vector.
rhs | The rhs input hypre par vector |
Definition at line 43 of file finite_element_vector.cpp.
FiniteElementVector & serac::FiniteElementVector::operator= | ( | const mfem::Vector & | rhs | ) |
Copy assignment from a hypre par vector.
rhs | The rhs input hypre par vector |
Definition at line 53 of file finite_element_vector.cpp.
FiniteElementVector & serac::FiniteElementVector::operator= | ( | FiniteElementVector && | rhs | ) |
Move assignment.
rhs | The right hand side input vector |
Definition at line 70 of file finite_element_vector.cpp.
|
inline |
Returns a non-owning reference to the internal FESpace.
Definition at line 171 of file finite_element_vector.hpp.
|
protected |
Handle to the FiniteElementCollection, which is owned by MFEMSidreDataCollection.
Definition at line 206 of file finite_element_vector.hpp.