MOAB: Mesh Oriented datABase  (version 5.3.0)
MBMesquite::MeshDomain Class Reference

#include <MeshInterface.hpp>

+ Inheritance diagram for MBMesquite::MeshDomain:

Public Member Functions

virtual ~MeshDomain ()
virtual void snap_to (Mesh::VertexHandle entity_handle, Vector3D &coordinate) const =0
virtual void vertex_normal_at (Mesh::VertexHandle entity_handle, Vector3D &coordinate) const =0
virtual void element_normal_at (Mesh::ElementHandle entity_handle, Vector3D &coordinate) const =0
virtual void vertex_normal_at (const Mesh::VertexHandle *handles, Vector3D coordinates[], unsigned count, MsqError &err) const =0
 evaluate surface normals
virtual void closest_point (Mesh::VertexHandle handle, const Vector3D &position, Vector3D &closest, Vector3D &normal, MsqError &err) const =0
 evaluate closest point and normal
virtual void domain_DoF (const Mesh::EntityHandle *handle_array, unsigned short *dof_array, size_t num_handles, MsqError &err) const =0
 Get degrees of freedom in vertex movement.

Detailed Description

The MeshDomain class provides geometrical information concerning the Mesh. It is called during surface meshes optimization to figure out the surface normal, how to snap vertices back to the surface, etc... .

Definition at line 363 of file MeshInterface.hpp.


Constructor & Destructor Documentation

virtual MBMesquite::MeshDomain::~MeshDomain ( ) [inline, virtual]

Definition at line 366 of file MeshInterface.hpp.

{}

Member Function Documentation

virtual void MBMesquite::MeshDomain::closest_point ( Mesh::VertexHandle  handle,
const Vector3D position,
Vector3D closest,
Vector3D normal,
MsqError err 
) const [pure virtual]

evaluate closest point and normal

Given a position in space, return the closest position in the domain and the domain normal at that point.

Parameters:
entity_handleEvaluate the subset of the domain contianing this entity
positionInput position for which to evaluate
closestClosest position in the domain.
normalDomain normal at the location of 'closest'

Implemented in MBMesquite::DomainClassifier, MBMesquite::CircleDomain, MBMesquite::MsqIGeom, MBMesquite::PlanarDomain, MBMesquite::XYRectangle, MBMesquite::LineDomain, MBMesquite::ConicDomain, MBMesquite::SphericalDomain, MBMesquite::XYPlanarDomain, MBMesquite::CylinderDomain, MBMesquite::PointDomain, ParaboloidDomain, and MBMesquite::MsqIRel.

Referenced by MBMesquite::PatchData::snap_vertex_to_domain().

virtual void MBMesquite::MeshDomain::domain_DoF ( const Mesh::EntityHandle handle_array,
unsigned short *  dof_array,
size_t  num_handles,
MsqError err 
) const [pure virtual]

Get degrees of freedom in vertex movement.

Given a vertex, return how the domain constrains the location of that vertex as the number of degrees of freedom in the motion of the vertex. If the domain is a geometric domain, the degrees of freedom for a vertex is the dimension of the geometric entity the vertex is constrained to lie on (e.g. point = 0, curve = 1, surface = 2, volume = 3.)

Implemented in ParaboloidDomain.

Referenced by check_results(), MBMesquite::DomainClassifier::domain_DoF(), MBMesquite::geom_classify_vertices(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), PatchDataTest::test_fixed_by_geom_dim(), and MBMesquite::PatchData::update_cached_normals().

virtual void MBMesquite::MeshDomain::vertex_normal_at ( Mesh::VertexHandle  entity_handle,
Vector3D coordinate 
) const [pure virtual]

Returns the normal of the domain to which "entity_handle" is constrained. For non-planar surfaces, the normal is calculated at the point on the domain that is closest to the passed in value of "coordinate". If the domain does not have a normal, or the normal cannot be determined, "coordinate" is set to (0,0,0). Otherwise, "coordinate" is set to the domain's normal at the appropriate point. In summary, the handle determines the domain. The coordinate determines the point of interest on that domain.

User should see also PatchData::get_domain_normal_at_vertex and PatchData::get_domain_normal_at_element .

Implemented in MBMesquite::DomainClassifier, MBMesquite::CircleDomain, MBMesquite::MsqIGeom, MBMesquite::PlanarDomain, MBMesquite::XYRectangle, MBMesquite::LineDomain, ParaboloidDomain, MBMesquite::ConicDomain, MBMesquite::SphericalDomain, MBMesquite::XYPlanarDomain, MBMesquite::CylinderDomain, MBMesquite::PointDomain, and MBMesquite::MsqIRel.

Referenced by check_results(), MBMesquite::PatchData::update_cached_normals(), and MBMesquite::DomainClassifier::vertex_normal_at().

virtual void MBMesquite::MeshDomain::vertex_normal_at ( const Mesh::VertexHandle handles,
Vector3D  coordinates[],
unsigned  count,
MsqError err 
) const [pure virtual]

evaluate surface normals

Returns normals for a domain.

Parameters:
handlesThe domain evaluated is the one in which this mesh entity is constrained.
coordinatesAs input, a list of positions at which to evaluate the domain. As output, the resulting domain normals.
countThe length of the coordinates array.

Implemented in MBMesquite::DomainClassifier, MBMesquite::CircleDomain, MBMesquite::MsqIGeom, MBMesquite::PlanarDomain, MBMesquite::XYRectangle, MBMesquite::LineDomain, MBMesquite::ConicDomain, MBMesquite::SphericalDomain, ParaboloidDomain, MBMesquite::XYPlanarDomain, MBMesquite::CylinderDomain, MBMesquite::PointDomain, and MBMesquite::MsqIRel.

List of all members.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines