SCOREC core
Parallel unstructured mesh tools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
maSolutionTransfer.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  Copyright 2013 Scientific Computation Research Center,
4  Rensselaer Polytechnic Institute. All rights reserved.
5 
6  The LICENSE file included with this distribution describes the terms
7  of the SCOREC Non-Commercial License this program is distributed under.
8 
9 *******************************************************************************/
10 #ifndef MA_SOLUTIONTRANSFER_H
11 #define MA_SOLUTIONTRANSFER_H
12 
16 #include <apf.h>
17 #include "maMesh.h"
18 
19 namespace ma {
20 
28 {
29  public:
31  virtual ~SolutionTransfer();
34  virtual bool hasNodesOn(int dimension) = 0;
45  virtual void onVertex(
46  apf::MeshElement* parent,
47  Vector const& xi,
48  Entity* vert);
58  virtual void onRefine(
59  Entity* parent,
60  EntityArray& newEntities);
69  virtual void onCavity(
70  EntityArray& oldElements,
71  EntityArray& newEntities);
74 };
75 
81 
86 {
87  public:
89  virtual ~SolutionTransfers();
91  void add(SolutionTransfer* t);
92  virtual bool hasNodesOn(int dimension);
93  virtual void onVertex(
94  apf::MeshElement* parent,
95  Vector const& xi,
96  Entity* vert);
97  virtual void onRefine(
98  Entity* parent,
99  EntityArray& newEntities);
100  virtual void onCavity(
101  EntityArray& oldElements,
102  EntityArray& newEntities);
103  private:
104  typedef std::vector<SolutionTransfer*> Transfers;
105  Transfers transfers;
106 };
107 
112 {
113  public:
115 };
116 
117 }
118 
119 #endif
int getTransferDimension()
for internal MeshAdapt use
virtual void onRefine(Entity *parent, EntityArray &newEntities)
perform solution transfer on refined entities
user-defined solution transfer base
virtual void onCavity(EntityArray &oldElements, EntityArray &newEntities)
perform solution transfer on cavity replacement
The APF Field interface.
virtual void onRefine(Entity *parent, EntityArray &newEntities)
perform solution transfer on refined entities
virtual void onVertex(apf::MeshElement *parent, Vector const &xi, Entity *vert)
perform solution transfer on refined vertex
virtual bool hasNodesOn(int dimension)
return true if this field has nodes on entities of this dimension
apf::DynamicArray< Entity * > EntityArray
convenient mesh entity array name
Definition: maMesh.h:35
virtual bool hasNodesOn(int dimension)=0
return true if this field has nodes on entities of this dimension
virtual void onCavity(EntityArray &oldElements, EntityArray &newEntities)
perform solution transfer on cavity replacement
a meta-object that carries out a series of transfers
mesh functions for MeshAdapt
SolutionTransfer * createFieldTransfer(apf::Field *f)
Creates a default solution transfer object for a field.
convenience wrapper over apf::Vector&lt;3&gt;
Definition: apfVector.h:150
virtual ~SolutionTransfer()
user-defined destructor
apf::MeshEntity Entity
convenient mesh entity name
Definition: maMesh.h:29
Extended mesh interface for modification.
Definition: apfMesh2.h:29
void add(SolutionTransfer *t)
add another field transfer object
virtual void onVertex(apf::MeshElement *parent, Vector const &xi, Entity *vert)
perform solution transfer on refined vertex
MeshAdapt&#39;s automatic solution transfer system.
VectorElement MeshElement
Mesh Elements represent the mesh coordinate vector field.
Definition: apf.h:37