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