Serac
0.1
Serac is an implicit thermal strucural mechanics simulation code.
|
Class for encapsulating the dual vector space of a finite element space (i.e. the space of linear forms as applied to a specific basis set) More...
#include <finite_element_dual.hpp>
Public Member Functions | |
FiniteElementDual (const FiniteElementDual &rhs) | |
Copy constructor. More... | |
FiniteElementDual (FiniteElementDual &&rhs) | |
Move construct a new Finite Element Dual object. More... | |
FiniteElementDual & | operator= (FiniteElementDual &&rhs) |
Move assignment. More... | |
FiniteElementDual & | operator= (const FiniteElementDual &rhs) |
Copy assignment. More... | |
void | fillLinearForm (mfem::ParLinearForm &linear_form) const |
Fill a user-provided linear form based on the underlying true vector. More... | |
void | setFromLinearForm (const mfem::ParLinearForm &linear_form) |
Initialize the true vector in the FiniteElementDual based on an input linear form. More... | |
mfem::ParLinearForm & | linearForm () const |
Construct a linear form from the finite element dual true vector. More... | |
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... | |
FiniteElementVector & | operator= (const double value) |
Set a finite element state to a constant value. More... | |
Public Member Functions inherited from serac::FiniteElementVector | |
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::unique_ptr< mfem::ParLinearForm > | linear_form_ |
An optional container for a linear form (L-vector) view of the finite element dual. More... | |
Protected Attributes inherited from serac::FiniteElementVector | |
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 dual vector space of a finite element space (i.e. the space of linear forms as applied to a specific basis set)
Definition at line 28 of file finite_element_dual.hpp.
|
inline |
Copy constructor.
[in] | rhs | The input Dual used for construction |
Definition at line 39 of file finite_element_dual.hpp.
|
inline |
Move construct a new Finite Element Dual object.
[in] | rhs | The input vector used for construction |
Definition at line 52 of file finite_element_dual.hpp.
|
inline |
Fill a user-provided linear form based on the underlying true vector.
This distributes true vector dofs to the finite element (local) dofs by multiplying the true dofs by the restriction transpose operator.
linear_form | The linear form used to initialize the underlying true vector. |
Definition at line 95 of file finite_element_dual.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 |
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 56 of file finite_element_vector.cpp.
serac::FiniteElementVector::FiniteElementVector |
Move construct a new Finite Element Vector object.
[in] | rhs | The input vector used for construction |
Definition at line 119 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 |
Construct a linear form from the finite element dual true vector.
Definition at line 122 of file finite_element_dual.hpp.
FiniteElementVector & serac::FiniteElementVector::operator= |
Set a finite element state to a constant value.
value | The constant to set the finite element state to |
Definition at line 189 of file finite_element_vector.cpp.
|
inline |
Copy assignment.
rhs | The right hand side input Dual |
Definition at line 75 of file finite_element_dual.hpp.
FiniteElementVector & serac::FiniteElementVector::operator= |
Copy assignment.
rhs | The right hand side input vector |
Definition at line 127 of file finite_element_vector.cpp.
FiniteElementVector & serac::FiniteElementVector::operator= |
Copy assignment from a hypre par vector.
rhs | The rhs input hypre par vector |
Definition at line 143 of file finite_element_vector.cpp.
FiniteElementVector & serac::FiniteElementVector::operator= |
Copy assignment from a hypre par vector.
rhs | The rhs input hypre par vector |
Definition at line 151 of file finite_element_vector.cpp.
|
inline |
Move assignment.
rhs | The right hand side input Dual |
Definition at line 63 of file finite_element_dual.hpp.
FiniteElementVector & serac::FiniteElementVector::operator= |
Move assignment.
rhs | The right hand side input vector |
Definition at line 135 of file finite_element_vector.cpp.
|
inline |
Initialize the true vector in the FiniteElementDual based on an input linear form.
This distributes the linear form dofs to the true vector dofs by multiplying by the prolongation transpose operator.
linear_form | The linear form used to initialize the underlying true vector. |
Definition at line 112 of file finite_element_dual.hpp.
|
mutableprotected |
An optional container for a linear form (L-vector) view of the finite element dual.
If a user requests it, it is constructed and potentially reused during subsequent calls. It is not updated unless specifically requested via the linearForm method.
Definition at line 139 of file finite_element_dual.hpp.