![]() |
SCOREC core
Parallel unstructured mesh tools
|
The APF Field interface. More...
Go to the source code of this file.
Classes | |
| class | apf::ReductionOp< T > |
| Base class for applying operations to make a Field consistent in parallel. More... | |
| class | apf::Integrator |
| A virtual base for user-defined integrators. More... | |
| struct | apf::Function |
| User-defined Analytic Function. More... | |
Namespaces | |
| pcu | |
| apf | |
| All APF symbols are contained in this namespace. | |
Macros | |
| #define | APF_ITERATE(t, w, i) |
| Stress-free iteration over STL-like containers. More... | |
| #define | APF_CONST_ITERATE(t, w, i) |
| APF_ITERATE for const containers. | |
Typedefs | |
| typedef VectorElement | apf::MeshElement |
| Mesh Elements represent the mesh coordinate vector field. | |
Enumerations | |
| enum | apf::ValueType { apf::SCALAR , apf::VECTOR , apf::MATRIX , apf::PACKED , apf::VALUE_TYPES } |
| The type of value the field stores. More... | |
Functions | |
| void | apf::destroyMesh (Mesh *m) |
| Destroys an apf::Mesh. More... | |
| MeshElement * | apf::createMeshElement (Mesh *m, MeshEntity *e) |
| Creates a Mesh Element over an entity. More... | |
| MeshElement * | apf::createMeshElement (Field *c, MeshEntity *e) |
| Creates a non-standard Mesh Element over an entity. More... | |
| MeshEntity * | apf::getMeshEntity (MeshElement *me) |
| Retrieve the mesh entity associated with an apf::MeshElement. | |
| void | apf::destroyMeshElement (MeshElement *e) |
| Destroys a Mesh Element. More... | |
| Field * | apf::createLagrangeField (Mesh *m, const char *name, int valueType, int order) |
| Create an apf::Field using a Lagrange distribution. More... | |
| Field * | apf::createStepField (Mesh *m, const char *name, int valueType) |
| Create an apf::Field using a step distribution. More... | |
| Field * | apf::createIPField (Mesh *m, const char *name, int valueType, int order) |
| Create an apf::Field of integration point data. More... | |
| Field * | apf::createField (Mesh *m, const char *name, int valueType, FieldShape *shape) |
| Create a Field from any builtin or user defined FieldShape. | |
| Field * | apf::createFieldOn (Mesh *m, const char *name, int valueType) |
| Create a field using the mesh's coordinate nodal distribution. | |
| Field * | apf::createPackedField (Mesh *m, const char *name, int components, apf::FieldShape *shape=0) |
| Create a field of N components without a tensor type. More... | |
| Field * | apf::createGeneralField (Mesh *m, const char *name, int valueType, int components, FieldShape *shape) |
| Encompasses both packed and typed fields. | |
| Field * | apf::cloneField (Field *f, Mesh *onto) |
| Declare a copy of a field on another apf::Mesh. More... | |
| Mesh * | apf::getMesh (Field *f) |
| Retrieve the Mesh over which a Field is defined. | |
| bool | apf::hasEntity (Field *f, MeshEntity *e) |
| Returns true iff an entity has data associate with a field. | |
| const char * | apf::getName (Field *f) |
| Get the name of a Field. More... | |
| int | apf::getValueType (Field *f) |
| Retrieve the type of value a field distributes. | |
| void | apf::destroyField (Field *f) |
| Destroy an apf::Field. More... | |
| void | apf::setScalar (Field *f, MeshEntity *e, int node, double value) |
| Set a nodal value of a scalar field. More... | |
| double | apf::getScalar (Field *f, MeshEntity *e, int node) |
| Get the node value of a scalar field. More... | |
| void | apf::setVector (Field *f, MeshEntity *e, int node, Vector3 const &value) |
| Set the nodal value of a vector field. More... | |
| void | apf::getVector (Field *f, MeshEntity *e, int node, Vector3 &value) |
| Get the nodal value of a vector field. | |
| void | apf::setMatrix (Field *f, MeshEntity *e, int node, Matrix3x3 const &value) |
| Set the nodal value of a matrix field. More... | |
| void | apf::getMatrix (Field *f, MeshEntity *e, int node, Matrix3x3 &value) |
| Get the nodal value of a matrix field. | |
| void | apf::setComponents (Field *f, MeshEntity *e, int node, double const *components) |
| Set the nodal value from an array of component values. | |
| void | apf::getComponents (Field *f, MeshEntity *e, int node, double *components) |
| Copy the nodal value into an array of component values. More... | |
| Element * | apf::createElement (Field *f, MeshElement *e) |
| Create a Field Element from a Mesh Element. More... | |
| Element * | apf::createElement (Field *f, MeshEntity *e) |
| Create a Field Element without a parent Mesh Element. More... | |
| void | apf::destroyElement (Element *e) |
| Destroy a Field Element. | |
| MeshElement * | apf::getMeshElement (Element *e) |
| Get the Mesh Element of a Field Element. More... | |
| MeshEntity * | apf::getMeshEntity (Element *e) |
| Retrieve the mesh entity of an apf::Element. | |
| double | apf::getScalar (Element *e, Vector3 const ¶m) |
| Evaluate a scalar field at a point. More... | |
| void | apf::getGrad (Element *e, Vector3 const ¶m, Vector3 &grad) |
| Get the gradient of a scalar field w.r.t. global coordinates. More... | |
| void | apf::getVector (Element *e, Vector3 const ¶m, Vector3 &value) |
| Evaluate a vector field at a point. More... | |
| double | apf::getDiv (Element *e, Vector3 const ¶m) |
| Evaluate the divergence of a vector field at a point. More... | |
| void | apf::getCurl (Element *e, Vector3 const ¶m, Vector3 &curl) |
| Evaluate the curl of a vector field at a point. More... | |
| void | apf::getVectorGrad (Element *e, Vector3 const ¶m, Matrix3x3 &deriv) |
| Get the gradient of a vector field w.r.t. global coordinates. More... | |
| void | apf::getMatrix (Element *e, Vector3 const ¶m, Matrix3x3 &value) |
| Evaluate the value of a matrix field. More... | |
| void | apf::getMatrixGrad (Element *e, Vector3 const ¶m, Vector< 27 > &value) |
| get the gradient of a matrix field More... | |
| void | apf::getComponents (Element *e, Vector3 const ¶m, double *components) |
| Evaluate a field into an array of component values. | |
| int | apf::countIntPoints (MeshElement *e, int order) |
| Get the number of integration points for an element. More... | |
| void | apf::getIntPoint (MeshElement *e, int order, int point, Vector3 ¶m) |
| Get an integration point in an element. More... | |
| double | apf::getIntWeight (MeshElement *e, int order, int point) |
| Get the weight of an integration point in an element. More... | |
| void | apf::mapLocalToGlobal (MeshElement *e, Vector3 const &local, Vector3 &global) |
| Map a local coordinate to a global coordinate. | |
| double | apf::getDV (MeshElement *e, Vector3 const ¶m) |
| Get the differential volume at a point. More... | |
| double | apf::measure (MeshElement *e) |
| Measures the volume, area, or length of a Mesh Element. More... | |
| double | apf::measure (Mesh *m, MeshEntity *e) |
| Measures the volume, area, or length of a Mesh Entity. More... | |
| int | apf::getOrder (MeshElement *e) |
| Returns the polynomial order of the coordinate field. | |
| void | apf::getJacobian (MeshElement *e, Vector3 const &local, Matrix3x3 &j) |
| Returns the Jacobian at a local point. | |
| void | apf::getJacobianInv (MeshElement *e, Vector3 const &local, Matrix3x3 &jinv) |
| Returns the Jacobian inverse at a local point. More... | |
| double | apf::computeCosAngle (Mesh *m, MeshEntity *pe, MeshEntity *e1, MeshEntity *e2, const Matrix3x3 &Q) |
| Returns the cosine of the angle between 2 entities of the parent entity. More... | |
| double | apf::computeShortestHeightInTet (Mesh *m, MeshEntity *tet, const Matrix3x3 &Q=Matrix3x3(1., 0., 0., 0., 1., 0., 0., 0., 1.)) |
| Returns the shortest height in a tet. More... | |
| double | apf::computeLargestHeightInTet (Mesh *m, MeshEntity *tet, const Matrix3x3 &Q=Matrix3x3(1., 0., 0., 0., 1., 0., 0., 0., 1.)) |
| Returns the largest height in a tet. More... | |
| double | apf::computeShortestHeightInTri (Mesh *m, MeshEntity *tri, const Matrix3x3 &Q=Matrix3x3(1., 0., 0., 0., 1., 0., 0., 0., 1.)) |
| Returns the shortest height in a tri. More... | |
| double | apf::computeLargestHeightInTri (Mesh *m, MeshEntity *tri, const Matrix3x3 &Q=Matrix3x3(1., 0., 0., 0., 1., 0., 0., 0., 1.)) |
| Returns the largest height in a tri. More... | |
| int | apf::countNodes (Element *e) |
| Returns the number of element nodes. More... | |
| void | apf::getScalarNodes (Element *e, NewArray< double > &values) |
| Returns the element nodal values for a scalar field. | |
| void | apf::getVectorNodes (Element *e, NewArray< Vector3 > &values) |
| Returns the element nodal values for a vector field. | |
| void | apf::getMatrixNodes (Element *e, NewArray< Matrix3x3 > &values) |
| Returns the element nodal values for a matrix field. | |
| void | apf::getShapeValues (Element *e, Vector3 const &local, NewArray< double > &values) |
| Returns the shape function values at a point. | |
| void | apf::getShapeGrads (Element *e, Vector3 const &local, NewArray< Vector3 > &grads) |
| Returns the shape function gradients at a point. More... | |
| void | apf::getVectorShapeValues (Element *e, Vector3 const &local, NewArray< Vector3 > &values) |
| Returns the vector shape function values at a point. More... | |
| void | apf::getCurlShapeValues (Element *e, Vector3 const &local, NewArray< Vector3 > &values) |
| Returns the vector curl shape function values at a point. More... | |
| FieldShape * | apf::getShape (Field *f) |
| Retrieve the apf::FieldShape used by a field. | |
| int | apf::countComponents (Field *f) |
| Count the number of scalar components in the field's value type. | |
| void | apf::writeVtkFiles (const char *prefix, Mesh *m, int cellDim=-1) |
| Write a set of parallel VTK Unstructured Mesh files from an apf::Mesh with binary (base64) encoding and zlib compression (if LION_COMPRESS=ON) More... | |
| void | apf::writeVtkFiles (const char *prefix, Mesh *m, std::vector< std::string > writeFields, int cellDim=-1) |
| Write a set of parallel VTK Unstructured Mesh files from an apf::Mesh with binary (base64) encoding and zlib compression (if LION_COMPRESS=ON) More... | |
| void | apf::writeOneVtkFile (const char *prefix, Mesh *m) |
| Output just the .vtu file with ASCII encoding for this part. More... | |
| void | apf::writeASCIIVtkFiles (const char *prefix, Mesh *m) |
| Write a set of parallel VTK Unstructured Mesh files from an apf::Mesh with ASCII encoding. More... | |
| void | apf::writeASCIIVtkFiles (const char *prefix, Mesh *m, std::vector< std::string > writeFields) |
| Write a set of parallel VTK Unstructured Mesh files from an apf::Mesh with ASCII encoding. More... | |
| void | apf::writeNedelecVtkFiles (const char *prefix, Mesh *m) |
| Output .vtk files with ASCII encoding for this part. More... | |
| void | apf::getGaussPoint (int type, int order, int point, Vector3 ¶m) |
| Return the location of a gaussian integration point. More... | |
| int | apf::countGaussPoints (int type, int order) |
| Return the number of Gaussian integration points. | |
| double | apf::getJacobianDeterminant (Matrix3x3 const &J, int dimension) |
| Return the Jacobian determinant or dimensional equivalent. More... | |
| int | apf::getDimension (MeshElement *me) |
| Return the dimension of a MeshElement's MeshEntity. | |
| void | apf::synchronize (Field *f, Sharing *shr=0) |
| Synchronize field values along partition boundary. More... | |
| void | apf::accumulate (Field *f, Sharing *shr=0, bool delete_shr=false) |
| Add field values along partition boundary. More... | |
| void | apf::sharedReduction (Field *f, Sharing *shr, bool delete_shr, const ReductionOp< double > &sum=ReductionSum< double >()) |
| Apply a reudction operator along partition boundaries. More... | |
| bool | apf::isPrintable (Field *f) |
| Checks whether a Field/Numbering/GlobalNumbering is complete and therefore printable to visualization files. This is a collective operation. | |
| void | apf::fail (const char *why) __attribute__((noreturn)) |
| Declare failure of code inside APF. More... | |
| void | apf::freeze (Field *f) |
| Convert a Field from Tag to array storage. | |
| void | apf::unfreeze (Field *f) |
| Convert a Field from array to Tag storage. | |
| bool | apf::isFrozen (Field *f) |
| Returns true iff the Field uses array storage. | |
| double * | apf::getArrayData (Field *f) |
| Return the contiguous array storing this field. More... | |
| void | apf::zeroField (Field *f) |
| Initialize all nodal values with all-zero components. | |
| Field * | apf::recoverGradientByVolume (Field *f) |
| Compute a nodal gradient field from a nodal input field. More... | |
| void | apf::projectField (Field *to, Field *from) |
| Project a field from an existing field. | |
| void | apf::getBF (FieldShape *s, MeshElement *e, Vector3 const &p, NewArray< double > &BF) |
| Get the basis functions over a mesh element. More... | |
| void | apf::getGradBF (FieldShape *s, MeshElement *e, Vector3 const &p, NewArray< Vector3 > &gradBF) |
| Get global gradients of basis functions over a mesh element. More... | |
The APF Field interface.
Definition in file apf.h.
| #define APF_ITERATE | ( | t, | |
| w, | |||
| i | |||
| ) |
Stress-free iteration over STL-like containers.
| t | The type of the container |
| w | The container itself |
| i | The name to give to the iterator |
given an STL container or anything that implements Type::iterator, Type::begin, Type::end, and Type::iterator::operator++(), this macro fills in the boilerplate of a for() loop over this container.
1.9.1