26 static unsigned const MAX_ORDER = 19;
50 virtual bool run() = 0;
127 std::vector<double> &edgeLengths,
128 std::vector<double> &linearQualities,
129 std::vector<double> &curvedQualities,
169 virtual double getQuality(apf::MeshEntity* e) = 0;
204 int getTetNodeIndex(
int P,
int i,
int j,
int k);
207 void fail(
const char* why) __attribute__((noreturn));
void writeCurvedVtuFiles(apf::Mesh *m, int type, int n, const char *prefix)
Visualization, writes file for specified type, n is number of subdivisions, higher number -> better r...
user-defined solution transfer base
int getTriNodeIndex(int P, int i, int j)
publically accessible functions
void adapt(ma::Input *in)
crv adapt with custom configuration
double getQuality(apf::Mesh *m, apf::MeshEntity *e)
computes min det Jacobian / max det Jacobian. Quality::getQuality should be used if multiple elements...
placeholder to set array sizes
void setCubicEdgePointsUsingNormals()
sets cubic edge points using normals
this curves a mesh with Bezier shapes
void writeCurvedWireFrame(apf::Mesh *m, int n, const char *prefix)
Visualization, writes wireframe of the curved mesh, n is number of subdivisions, higher number -> bet...
Describes field distribution and shape functions.
ma::Input * configureShapeCorrection(ma::Mesh *m, ma::SizeField *f=0, ma::SolutionTransfer *s=0)
configure for fixing invalid elements
virtual double getQuality(apf::MeshEntity *e)=0
get scaled jacobian, a quality measure
int getBlendingOrder(const int type)
gets the blending order
void setBlendingOrder(const int type, const int b)
sets the blending order, if shape blending is used
The APF Mesh modification interface.
virtual bool run()
curves a mesh using G1 gregory surfaces, see crvBezier.cc
int getOrder()
gets order used in bezier shape functions
void setInternalPointsLocally()
sets internal points locally
double interpolationError(apf::Mesh *m, apf::MeshEntity *e, int n)
computes interpolation error of a curved entity on a mesh
Interface to a mesh part.
void setOrder(const int order)
sets order used in bezier shape functions
void writeControlPointVtuFiles(apf::Mesh *m, const char *prefix)
Visualization, writes file of control nodes for each entity.
Quality * makeQuality(apf::Mesh *m, int algorithm=2)
use this to make a quality object with the correct dimension
int countNumberInvalidElements(apf::Mesh2 *m)
count invalid elements of the mesh
Field node distribution and shape functions.
Base Mesh curving object.
void fail(const char *why) __attribute__((noreturn))
crv fail function
int checkValidity(apf::Mesh *m, apf::MeshEntity *e, int algorithm=2)
checks validity of it and returns integer corresponding to invalid entity. Quality::checkValidity sho...
class to store matrices used in quality assessment and validity checking
Extended mesh interface for modification.
void stats(ma::Input *in, std::vector< double > &edgeLengths, std::vector< double > &linearQualities, std::vector< double > &curvedQualities, bool inMetric=true)
crv stats to get statistic information about the mesh
virtual bool run()
curves a mesh using bezier curves of chosen order
apf::FieldShape * getBezier(int order)
Get the Bezier Curve or Shape of some order.
virtual int checkValidity(apf::MeshEntity *e)=0
check the validity (det(Jacobian) > eps) of an element
void snapToInterpolate(int dim)
snaps points to interpolating locations
apf::FieldShape * getGregory()
Get the 4th order Gregory Surface.
this curves a mesh with 4th order G1 Patches
curves an already changed mesh
void synchronize()
wrapper around synchronizeFieldData
void writeInterpolationPointVtuFiles(apf::Mesh *m, const char *prefix)
Visualization, writes file of shapes evaluated at node xi for each entity.
void convertInterpolatingToBezier()
converts interpolating points to bezier control points