26 const double MAXLENGTH = 1.5;
27 const double MINLENGTH = .5;
28 const double MAXLENGTHRATIO = 1.2;
35 virtual bool shouldSplit(
Entity* edge) = 0;
36 virtual bool shouldCollapse(
Entity* edge) = 0;
37 virtual void interpolate(
41 virtual void getTransform(
45 virtual double getWeight(
Entity* e) = 0;
46 virtual void onRefine(
49 virtual void onCavity(
52 virtual int getTransferDimension();
53 virtual bool hasNodesOn(
int dimension);
56 struct IdentitySizeField :
public SizeField
58 IdentitySizeField(
Mesh* m);
61 bool shouldCollapse(
Entity*);
75 struct UniformRefiner :
public IdentitySizeField
77 UniformRefiner(
Mesh* m):
108 SizeField* makeSizeField(
Mesh* m, apf::Field* sizes, apf::Field* frames,
109 bool logInterpolation =
false);
111 bool logInterpolation =
false);
112 SizeField* makeSizeField(
Mesh* m, apf::Field* size);
115 double getAverageEdgeLength(
Mesh* m);
116 double getMaximumEdgeLength(
Mesh* m, SizeField* sf = 0);
convenience wrapper over apf::Matrix<3,3>
Extended mesh interface for modification.
convenience wrapper over apf::Vector<3>
User-defined Anisotropic size function.
virtual void getValue(Entity *vert, Matrix &r, Vector &h)=0
get the size field value at this vertex
User-defined Isotropic size function.
virtual double getValue(Entity *vert)=0
get the desired element size at this vertex
mesh functions for MeshAdapt
VectorElement MeshElement
Mesh Elements represent the mesh coordinate vector field.
double measure(MeshElement *e)
Measures the volume, area, or length of a Mesh Element.
apf::MeshEntity Entity
convenient mesh entity name
apf::Mesh2 Mesh
convenient mesh name
apf::Matrix3x3 Matrix
convenient matrix name
apf::DynamicArray< Entity * > EntityArray
convenient mesh entity array name
apf::Vector3 Vector
convenient vector name