35 MFEM_ABORT(
"Can't find a relation between the two GridFunctions");
58 z_.
SetSize(root_fes_->GetVSize());
86 MFEM_ABORT(
"Trying to do a transfer between GridFunctions but none of them is defined on a SubMesh");
96 for (
int i = 0; i < sub1_to_parent_map_.
Size(); i++)
98 dst(i) = src(sub1_to_parent_map_[i]);
108 for (
int i = 0; i < sub1_to_parent_map_.
Size(); i++)
110 dst(sub1_to_parent_map_[i]) = src(i);
121 for (
int i = 0; i < sub2_to_parent_map_.
Size(); i++)
123 z_(sub2_to_parent_map_[i]) = dst(i);
126 for (
int i = 0; i < sub1_to_parent_map_.
Size(); i++)
128 z_(sub1_to_parent_map_[i]) = src(i);
131 for (
int i = 0; i < sub2_to_parent_map_.
Size(); i++)
133 dst(i) = z_(sub2_to_parent_map_[i]);
138 MFEM_ABORT(
"unknown TransferCategory: " << category_);
void BuildVdofToVdofMap(const FiniteElementSpace &subfes, const FiniteElementSpace &parentfes, const SubMesh::From &from, const Array< int > &parent_element_ids, Array< int > &vdof_to_vdof_map)
Build the vdof to vdof mapping between two FiniteElementSpace objects.
Class for grid function - Vector with associated FE space.
void SetSize(int s)
Resize the vector to size s.
const Array< int > & GetParentElementIDMap() const
Get the parent element id map.
void Transfer(const GridFunction &src, GridFunction &dst) const
Transfer the source GridFunction to the destination GridFunction.
static bool IsSubMesh(const Mesh *m)
Check if Mesh m is a SubMesh.
FiniteElementSpace * FESpace()
Mesh * GetMesh() const
Returns the mesh.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
RT GetRootParent(const T &m)
Identify the root parent of a given SubMesh.
From GetFrom() const
Get the From indicator.
Subdomain representation of a topological parent in another Mesh.
int Size() const
Return the logical size of the array.
TransferMap(const GridFunction &src, const GridFunction &dst)
Construct a new TransferMap object which transfers degrees of freedom from the source GridFunction to...