MOAB: Mesh Oriented datABase
(version 5.4.1)
|
A MBMesquite::Mesh is a collection of mesh elements which are composed of mesh vertices. Intermediate objects are not accessible through this interface (where intermediate objects include things like the faces of a hex, or an element's edges). More...
#include <MeshInterface.hpp>
Public Types | |
enum | TagType { BYTE, BOOL, INT, DOUBLE, HANDLE } |
typedef void * | EntityHandle |
Opaque EntityHandle type and tag type. | |
typedef EntityHandle | VertexHandle |
typedef EntityHandle | ElementHandle |
Public Member Functions | |
virtual int | get_geometric_dimension (MsqError &err)=0 |
Returns whether this mesh lies in a 2D or 3D coordinate system. | |
virtual void | get_all_elements (std::vector< ElementHandle > &elements, MsqError &err)=0 |
Get all elements in mesh. | |
virtual void | get_all_vertices (std::vector< VertexHandle > &vertices, MsqError &err)=0 |
Get all vertices in mesh. | |
virtual void | vertices_get_fixed_flag (const VertexHandle vert_array[], std::vector< bool > &fixed_flag_array, size_t num_vtx, MsqError &err)=0 |
virtual void | vertices_get_slaved_flag (const VertexHandle vert_array[], std::vector< bool > &slaved_flag_array, size_t num_vtx, MsqError &err)=0 |
virtual void | vertices_get_coordinates (const VertexHandle vert_array[], MsqVertex *coordinates, size_t num_vtx, MsqError &err)=0 |
Get/set location of a vertex. | |
virtual void | vertex_set_coordinates (VertexHandle vertex, const Vector3D &coordinates, MsqError &err)=0 |
virtual void | vertex_set_byte (VertexHandle vertex, unsigned char byte, MsqError &err)=0 |
virtual void | vertices_set_byte (const VertexHandle *vert_array, const unsigned char *byte_array, size_t array_size, MsqError &err)=0 |
virtual void | vertex_get_byte (const VertexHandle vertex, unsigned char *byte, MsqError &err)=0 |
virtual void | vertices_get_byte (const VertexHandle *vertex, unsigned char *byte_array, size_t array_size, MsqError &err)=0 |
virtual void | vertices_get_attached_elements (const VertexHandle *vertex_array, size_t num_vertex, std::vector< ElementHandle > &elements, std::vector< size_t > &offsets, MsqError &err)=0 |
get elements adjacent to vertices | |
virtual void | elements_get_attached_vertices (const ElementHandle *elem_handles, size_t num_elems, std::vector< VertexHandle > &vert_handles, std::vector< size_t > &offsets, MsqError &err)=0 |
Get element connectivity. | |
virtual void | elements_get_topologies (const ElementHandle *element_handle_array, EntityTopology *element_topologies, size_t num_elements, MsqError &err)=0 |
virtual TagHandle | tag_create (const std::string &tag_name, TagType type, unsigned length, const void *default_value, MsqError &err)=0 |
Create a tag. | |
virtual void | tag_delete (TagHandle handle, MsqError &err)=0 |
Remove a tag and all corresponding data. | |
virtual TagHandle | tag_get (const std::string &name, MsqError &err)=0 |
Get handle for existing tag, by name. | |
virtual void | tag_properties (TagHandle handle, std::string &name_out, TagType &type_out, unsigned &length_out, MsqError &err)=0 |
Get properites of tag. | |
virtual void | tag_set_element_data (TagHandle handle, size_t num_elems, const ElementHandle *elem_array, const void *tag_data, MsqError &err)=0 |
Set tag values on elements. | |
virtual void | tag_set_vertex_data (TagHandle handle, size_t num_elems, const VertexHandle *node_array, const void *tag_data, MsqError &err)=0 |
Set tag values on vertices. | |
virtual void | tag_get_element_data (TagHandle handle, size_t num_elems, const ElementHandle *elem_array, void *tag_data, MsqError &err)=0 |
Get tag values on elements. | |
virtual void | tag_get_vertex_data (TagHandle handle, size_t num_elems, const VertexHandle *node_array, void *tag_data, MsqError &err)=0 |
Get tag values on vertices. | |
virtual void | release_entity_handles (const EntityHandle *handle_array, size_t num_handles, MsqError &err)=0 |
virtual void | release ()=0 |
virtual | ~Mesh () |
A MBMesquite::Mesh is a collection of mesh elements which are composed of mesh vertices. Intermediate objects are not accessible through this interface (where intermediate objects include things like the faces of a hex, or an element's edges).
Definition at line 76 of file MeshInterface.hpp.
Definition at line 89 of file MeshInterface.hpp.
typedef void* MBMesquite::Mesh::EntityHandle |
Opaque EntityHandle type and tag type.
Definition at line 81 of file MeshInterface.hpp.
Definition at line 88 of file MeshInterface.hpp.
virtual MBMesquite::Mesh::~Mesh | ( | ) | [inline, virtual] |
Definition at line 358 of file MeshInterface.hpp.
{}
virtual void MBMesquite::Mesh::elements_get_attached_vertices | ( | const ElementHandle * | elem_handles, |
size_t | num_elems, | ||
std::vector< VertexHandle > & | vert_handles, | ||
std::vector< size_t > & | offsets, | ||
MsqError & | err | ||
) | [pure virtual] |
Get element connectivity.
Get the connectivity (ordered list of vertex handles) for each element in the input array.
elem_handles | The array of element handles for which to retrieve the connectivity list. |
num_elems | The length of #elem_handles |
vert_handles | Array in which to place the vertex handles in each elements connectivity. |
offsets | For each element in #elem_handles, the value in the same position in this array is the index into #vert_handles at which the connectivity list for that element begins. |
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by VtkTest::check_4quad_structured(), VtkTest::check_8hex_structured(), check_no_slaved_corners(), check_slaved_coords(), classify_boundary(), MBMesquite::TerminationCriterion::cull_vertices_global(), elem_areas(), MBMesquite::MeshDecorator::elements_get_attached_vertices(), MBMesquite::ParallelMeshImpl::elements_get_attached_vertices(), MBMesquite::find_skin(), find_z10_extreme_elements(), MBMesquite::PlanarDomain::fit_vertices(), MBMesquite::geom_classify_elements(), PatchDataTest::get_higher_order_vertices(), MBMesquite::VertexPatches::get_patch(), get_slaved_coords(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::ParallelHelperImpl::is_our_element(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), MBMesquite::MeshUtil::meshes_are_different(), MBMesquite::next_vertex(), MBMesquite::PatchData::set_mesh_entities(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::DomainClassifier::test_valid_classification(), tet_dihedral_angle_ratios(), MBMesquite::vert_classify_elements(), MBMesquite::MeshWriter::write_eps_triangle(), and MBMesquite::MeshWriter::write_stl().
virtual void MBMesquite::Mesh::elements_get_topologies | ( | const ElementHandle * | element_handle_array, |
EntityTopology * | element_topologies, | ||
size_t | num_elements, | ||
MsqError & | err | ||
) | [pure virtual] |
Returns the topologies of the given entities. The "entity_topologies" array must be at least "num_elements" in size.
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by check_no_slaved_corners(), check_slaved_coords(), MBMesquite::DomainClassifier::classify_geometrically(), elem_areas(), MBMesquite::MeshDecorator::elements_get_topologies(), MBMesquite::ParallelMeshImpl::elements_get_topologies(), MBMesquite::find_skin(), MBMesquite::PlanarDomain::fit_vertices(), PatchDataTest::get_higher_order_vertices(), get_slaved_coords(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), MBMesquite::MeshUtil::meshes_are_different(), MBMesquite::next_vertex(), MBMesquite::PatchData::set_mesh_entities(), MBMesquite::DomainClassifier::test_valid_classification(), tet_dihedral_angle_ratios(), MBMesquite::MeshWriter::write_eps_triangle(), and MBMesquite::MeshWriter::write_stl().
virtual void MBMesquite::Mesh::get_all_elements | ( | std::vector< ElementHandle > & | elements, |
MsqError & | err | ||
) | [pure virtual] |
Get all elements in mesh.
Get the handles of every element in the active mesh.
Implemented in MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::MeshImpl, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by VtkTest::check_4quad_structured(), VtkTest::check_8hex_structured(), PatchDataTest::check_higher_order_vertices_slaved(), check_no_slaved_corners(), check_slaved_coords(), MBMesquite::DomainClassifier::classify_by_handle(), MBMesquite::DomainClassifier::classify_by_tag(), MBMesquite::DomainClassifier::classify_geometrically(), MBMesquite::find_skin(), find_z10_extreme_elements(), MBMesquite::PlanarDomain::fit_vertices(), MBMesquite::MeshDecorator::get_all_elements(), MBMesquite::ParallelMeshImpl::get_all_elements(), PatchDataTest::get_higher_order_vertices(), MBMesquite::GlobalPatch::get_patch(), MBMesquite::ElementPatches::get_patch_handles(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), MBMesquite::MeshUtil::meshes_are_different(), MBMesquite::ShapeImprover::run_wrapper(), MBMesquite::ParallelHelperImpl::smoothing_init(), PatchDataTest::test_fixed_by_geom_dim(), MBMesquite::DomainClassifier::test_valid_classification(), tet_dihedral_angle_ratios(), and MBMesquite::MeshWriter::write_stl().
virtual void MBMesquite::Mesh::get_all_vertices | ( | std::vector< VertexHandle > & | vertices, |
MsqError & | err | ||
) | [pure virtual] |
Get all vertices in mesh.
Get the handles of every vertex in the active mesh
Implemented in MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::MeshImpl, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by check_results(), MBMesquite::checkpoint_bytes(), classify_boundary(), MBMesquite::DomainClassifier::classify_by_handle(), MBMesquite::DomainClassifier::classify_by_tag(), MBMesquite::DomainClassifier::classify_geometrically(), MBMesquite::VertexMover::commit_jacobi_coords(), compare_node_coords(), MBMesquite::BoundedCylinderDomain::create_curve(), MBMesquite::TerminationCriterion::cull_vertices_global(), MBMesquite::SphericalDomain::fit_vertices(), MBMesquite::PlanarDomain::fit_vertices(), MBMesquite::MeshDecorator::get_all_vertices(), MBMesquite::ParallelMeshImpl::get_all_vertices(), MBMesquite::VertexMover::get_jacobi_coord_tag(), MBMesquite::VertexPatches::get_patch_handles(), horseshoe(), TCTFauxOptimizer::initialize(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::VertexMover::loop_over_mesh(), MBMesquite::MeshTransform::loop_over_mesh(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), make_domain(), MBMesquite::MeshUtil::meshes_are_different(), MBMesquite::DeformingDomainWrapper::move_to_domain(), parabolic_squash(), quarter_annulus(), MBMesquite::restore_bytes(), MBMesquite::ShapeImprover::run_wrapper(), scale(), MBMesquite::XYRectangle::setup(), MBMesquite::ParallelHelperImpl::smoothing_init(), PatchDataTest::test_fixed_by_geom_dim(), and MBMesquite::DomainClassifier::test_valid_classification().
virtual int MBMesquite::Mesh::get_geometric_dimension | ( | MsqError & | err | ) | [pure virtual] |
Returns whether this mesh lies in a 2D or 3D coordinate system.
Implemented in MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::MeshImpl, FakeMesh, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::MeshDecorator::get_geometric_dimension(), and MBMesquite::ParallelMeshImpl::get_geometric_dimension().
virtual void MBMesquite::Mesh::release | ( | ) | [pure virtual] |
Instead of deleting a Mesh when you think you are done, call release(). In simple cases, the implementation could just call the destructor. More sophisticated implementations may want to keep the Mesh object to live longer than Mesquite is using it.
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::ParallelMeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::MeshDecorator, MBMesquite::TagVertexMesh, and FakeMesh.
Referenced by MBMesquite::MeshDecorator::release(), and MBMesquite::ParallelMeshImpl::release().
virtual void MBMesquite::Mesh::release_entity_handles | ( | const EntityHandle * | handle_array, |
size_t | num_handles, | ||
MsqError & | err | ||
) | [pure virtual] |
Tells the mesh that the client is finished with a given entity handle.
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::ParallelMeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by MBMesquite::MeshDecorator::release_entity_handles(), and MBMesquite::ParallelMeshImpl::release_entity_handles().
virtual TagHandle MBMesquite::Mesh::tag_create | ( | const std::string & | tag_name, |
TagType | type, | ||
unsigned | length, | ||
const void * | default_value, | ||
MsqError & | err | ||
) | [pure virtual] |
Create a tag.
Create a user-defined data type that can be attached to any element or vertex in the mesh. For an opaque or undefined type, use type=BYTE and length=sizeof(..).
tag_name | A unique name for the data object |
type | The type of the data |
length | Number of values per entity (1->scalar, >1 ->vector) |
default_value | Default value to assign to all entities - may be NULL |
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, MBMesquite::TagVertexMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::TagVertexMesh::copy_all_coordinates(), MBMesquite::VertexMover::get_jacobi_coord_tag(), MBMesquite::QualityAssessor::get_tag(), MBMesquite::TargetWriter::get_tag_handle(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::DeformingCurveSmoother::store_initial_mesh(), MBMesquite::MeshDecorator::tag_create(), MBMesquite::TagVertexMesh::tag_create(), MBMesquite::ParallelMeshImpl::tag_create(), tag_patch_slaved(), and MBMesquite::TagVertexMesh::vertex_set_coordinates().
virtual void MBMesquite::Mesh::tag_delete | ( | TagHandle | handle, |
MsqError & | err | ||
) | [pure virtual] |
Remove a tag and all corresponding data.
Delete a tag.
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by MBMesquite::VertexMover::loop_over_mesh(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::MeshDecorator::tag_delete(), and MBMesquite::ParallelMeshImpl::tag_delete().
virtual TagHandle MBMesquite::Mesh::tag_get | ( | const std::string & | name, |
MsqError & | err | ||
) | [pure virtual] |
Get handle for existing tag, by name.
Check for the existance of a tag given it's name and if it exists return a handle for it. If the specified tag does not exist, zero should be returned WITHOUT flagging an error.
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, MBMesquite::TagVertexMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::DomainClassifier::classify_by_tag(), MBMesquite::get_tag(), MBMesquite::DeformingCurveSmoother::get_tag(), MBMesquite::QualityAssessor::get_tag(), MBMesquite::TargetWriter::get_tag_handle(), MBMesquite::TagVertexMesh::initialize(), MBMesquite::ParallelMeshImpl::ParallelMeshImpl(), MBMesquite::ParallelMeshImpl::set_global_id_tag(), MBMesquite::ParallelMeshImpl::set_processor_id_tag(), MBMesquite::MeshDecorator::tag_get(), MBMesquite::TagVertexMesh::tag_get(), and MBMesquite::ParallelMeshImpl::tag_get().
virtual void MBMesquite::Mesh::tag_get_element_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const ElementHandle * | elem_array, | ||
void * | tag_data, | ||
MsqError & | err | ||
) | [pure virtual] |
Get tag values on elements.
Get the value of a tag for a list of mesh elements.
handle | The tag |
num_elems | Length of elem_array |
elem_array | Array of elements for which to get the tag value. |
tag_data | Return buffer in which to copy tag data, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implemented in MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ArrayMesh, MBMesquite::ParallelMeshImpl, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by MBMesquite::DomainClassifier::classify_by_tag(), MBMesquite::TargetReader::get_2D_target(), MBMesquite::TargetReader::get_3D_target(), MBMesquite::TargetReader::get_surface_target(), MBMesquite::WeightReader::get_weight(), MBMesquite::MeshDecorator::tag_get_element_data(), and MBMesquite::ParallelMeshImpl::tag_get_element_data().
virtual void MBMesquite::Mesh::tag_get_vertex_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const VertexHandle * | node_array, | ||
void * | tag_data, | ||
MsqError & | err | ||
) | [pure virtual] |
Get tag values on vertices.
Get the value of a tag for a list of mesh vertices.
handle | The tag |
num_elems | Length of elem_array |
elem_array | Array of vertices for which to get the tag value. |
tag_data | Return buffer in which to copy tag data, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implemented in MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ArrayMesh, MBMesquite::ParallelMeshImpl, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by MBMesquite::DomainClassifier::classify_by_tag(), MBMesquite::VertexMover::commit_jacobi_coords(), MBMesquite::DeformingCurveSmoother::smooth_curve(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::MeshDecorator::tag_get_vertex_data(), MBMesquite::ParallelMeshImpl::tag_get_vertex_data(), MBMesquite::TagVertexMesh::vertices_get_coordinates(), and MBMesquite::ParallelMeshImpl::vertices_get_global_id().
virtual void MBMesquite::Mesh::tag_properties | ( | TagHandle | handle, |
std::string & | name_out, | ||
TagType & | type_out, | ||
unsigned & | length_out, | ||
MsqError & | err | ||
) | [pure virtual] |
Get properites of tag.
Get data type and number of values per entity for tag.
handle | Tag to get properties of. |
name_out | Passed back tag name. |
type_out | Passed back tag type. |
length_out | Passed back number of values per entity. |
Implemented in MBMesquite::MeshImpl, MBMesquite::ArrayMesh, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::DomainClassifier::classify_by_tag(), MBMesquite::get_tag(), MBMesquite::DeformingCurveSmoother::get_tag(), MBMesquite::QualityAssessor::get_tag(), MBMesquite::TargetWriter::get_tag_handle(), MBMesquite::MeshDecorator::tag_properties(), and MBMesquite::ParallelMeshImpl::tag_properties().
virtual void MBMesquite::Mesh::tag_set_element_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const ElementHandle * | elem_array, | ||
const void * | tag_data, | ||
MsqError & | err | ||
) | [pure virtual] |
Set tag values on elements.
Set the value of a tag for a list of mesh elements.
handle | The tag |
num_elems | Length of elem_array |
elem_array | Array of elements for which to set the tag value. |
tag_data | Tag data for each element, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implemented in MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ArrayMesh, MBMesquite::ParallelMeshImpl, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by MBMesquite::TargetWriter::loop_over_mesh(), MBMesquite::QualityAssessor::loop_over_mesh_internal(), MBMesquite::MeshDecorator::tag_set_element_data(), and MBMesquite::ParallelMeshImpl::tag_set_element_data().
virtual void MBMesquite::Mesh::tag_set_vertex_data | ( | TagHandle | handle, |
size_t | num_elems, | ||
const VertexHandle * | node_array, | ||
const void * | tag_data, | ||
MsqError & | err | ||
) | [pure virtual] |
Set tag values on vertices.
Set the value of a tag for a list of mesh vertices.
handle | The tag |
num_elems | Length of node_array |
node_array | Array of vertices for which to set the tag value. |
tag_data | Tag data for each element, contiguous in memory. This data is expected to be num_elems*tag_length*sizeof(tag_type) bytes. |
Implemented in MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ArrayMesh, MBMesquite::ParallelMeshImpl, MBMesquite::MeshDecorator, and FakeMesh.
Referenced by MBMesquite::VertexMover::get_jacobi_coord_tag(), MBMesquite::QualityAssessor::loop_over_mesh_internal(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::DeformingCurveSmoother::store_initial_mesh(), tag_patch_slaved(), MBMesquite::MeshDecorator::tag_set_vertex_data(), MBMesquite::ParallelMeshImpl::tag_set_vertex_data(), MBMesquite::PatchData::update_mesh(), and MBMesquite::TagVertexMesh::vertex_set_coordinates().
virtual void MBMesquite::Mesh::vertex_get_byte | ( | const VertexHandle | vertex, |
unsigned char * | byte, | ||
MsqError & | err | ||
) | [pure virtual] |
Retrieve the byte value for the specified vertex or vertices. The byte value is 0 if it has not yet been set via one of the _set_byte() functions.
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, FakeMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::TerminationCriterion::cull_vertices_global(), MBMesquite::MeshDecorator::vertex_get_byte(), and MBMesquite::ParallelMeshImpl::vertex_get_byte().
virtual void MBMesquite::Mesh::vertex_set_byte | ( | VertexHandle | vertex, |
unsigned char | byte, | ||
MsqError & | err | ||
) | [pure virtual] |
Each vertex has a byte-sized flag that can be used to store flags. This byte's value is neither set nor used by the mesh implementation. It is intended to be used by Mesquite algorithms. Until a vertex's byte has been explicitly set, its value is 0.
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, FakeMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::PatchData::update_mesh(), MBMesquite::MeshDecorator::vertex_set_byte(), and MBMesquite::ParallelMeshImpl::vertex_set_byte().
virtual void MBMesquite::Mesh::vertex_set_coordinates | ( | VertexHandle | vertex, |
const Vector3D & | coordinates, | ||
MsqError & | err | ||
) | [pure virtual] |
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::TagVertexMesh, MBMesquite::ParallelMeshImpl, FakeMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_b(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_b_no_all(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_nb(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_nb_no_all(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_tnb(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_tnb_no_all(), MBMesquite::VertexMover::commit_jacobi_coords(), horseshoe(), MBMesquite::MeshTransform::loop_over_mesh(), MBMesquite::DeformingDomainWrapper::move_to_domain(), parabolic_squash(), quarter_annulus(), scale(), MBMesquite::DeformingCurveSmoother::smooth_curve(), smooth_mesh(), MBMesquite::ParallelHelperImpl::smoothing_close(), MBMesquite::PatchData::update_mesh(), MBMesquite::MeshDecorator::vertex_set_coordinates(), and MBMesquite::ParallelMeshImpl::vertex_set_coordinates().
virtual void MBMesquite::Mesh::vertices_get_attached_elements | ( | const VertexHandle * | vertex_array, |
size_t | num_vertex, | ||
std::vector< ElementHandle > & | elements, | ||
std::vector< size_t > & | offsets, | ||
MsqError & | err | ||
) | [pure virtual] |
get elements adjacent to vertices
Get adjacency data for vertices
vertex_array | Array of vertex handles specifying the list of vertices to retrieve adjacency data for. |
num_vertex | Number of vertex handles in #vertex_array |
elements | The array in which to place the handles of elements adjacent to the input vertices. |
offsets | For each vertex in #vertex_array, the value in the corresponding position in this array is the index into #elem_array at which the adjacency list begins for that vertex. |
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by classify_boundary(), MBMesquite::TerminationCriterion::cull_vertices_global(), MBMesquite::find_skin(), MBMesquite::VertexPatches::get_patch(), get_slaved_coords(), MBMesquite::VertexMover::loop_over_mesh(), MBMesquite::next_vertex(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::DomainClassifier::test_valid_classification(), MBMesquite::MeshDecorator::vertices_get_attached_elements(), and MBMesquite::ParallelMeshImpl::vertices_get_attached_elements().
virtual void MBMesquite::Mesh::vertices_get_byte | ( | const VertexHandle * | vertex, |
unsigned char * | byte_array, | ||
size_t | array_size, | ||
MsqError & | err | ||
) | [pure virtual] |
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, FakeMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::checkpoint_bytes(), MBMesquite::VertexPatches::get_patch(), MBMesquite::VertexPatches::get_patch_handles(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), MBMesquite::PatchData::set_mesh_entities(), MBMesquite::ParallelHelperImpl::smoothing_close(), MBMesquite::ParallelHelperImpl::smoothing_init(), MBMesquite::MeshDecorator::vertices_get_byte(), and MBMesquite::ParallelMeshImpl::vertices_get_byte().
virtual void MBMesquite::Mesh::vertices_get_coordinates | ( | const VertexHandle | vert_array[], |
MsqVertex * | coordinates, | ||
size_t | num_vtx, | ||
MsqError & | err | ||
) | [pure virtual] |
Get/set location of a vertex.
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::TagVertexMesh, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by VtkTest::check_4quad_block(), VtkTest::check_8hex_block(), check_results(), check_slaved_coords(), classify_boundary(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_b(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_b_no_all(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_nb(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_nb_no_all(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_tnb(), MBMesquite::ParallelHelperImpl::comm_smoothed_vtx_tnb_no_all(), compare_node_coords(), compare_nodes(), MBMesquite::TagVertexMesh::copy_all_coordinates(), MBMesquite::BoundedCylinderDomain::create_curve(), elem_areas(), find_z10_extreme_elements(), MBMesquite::SphericalDomain::fit_vertices(), MBMesquite::PlanarDomain::fit_vertices(), MBMesquite::geom_classify_elements(), MBMesquite::geom_classify_vertices(), MBMesquite::VertexMover::get_jacobi_coord_tag(), MBMesquite::ReferenceMesh::get_reference_vertex_coordinates(), get_slaved_coords(), horseshoe(), MBMesquite::MeshTransform::loop_over_mesh(), make_domain(), MBMesquite::MeshUtil::meshes_are_different(), MBMesquite::DeformingDomainWrapper::move_to_domain(), parabolic_squash(), quarter_annulus(), scale(), MBMesquite::PatchData::set_mesh_entities(), MBMesquite::XYRectangle::setup(), MBMesquite::DeformingCurveSmoother::smooth_curve(), smooth_mesh(), MBMesquite::ParallelHelperImpl::smoothing_close(), MBMesquite::DeformingCurveSmoother::store_initial_mesh(), tet_dihedral_angle_ratios(), MBMesquite::MeshDecorator::vertices_get_coordinates(), MBMesquite::ParallelMeshImpl::vertices_get_coordinates(), MBMesquite::TagVertexMesh::vertices_get_coordinates(), MBMesquite::MeshWriter::write_eps_triangle(), and MBMesquite::MeshWriter::write_stl().
virtual void MBMesquite::Mesh::vertices_get_fixed_flag | ( | const VertexHandle | vert_array[], |
std::vector< bool > & | fixed_flag_array, | ||
size_t | num_vtx, | ||
MsqError & | err | ||
) | [pure virtual] |
Returns a pointer to an iterator that iterates over the set of all vertices in this mesh. The calling code should delete the returned iterator when it is finished with it. If vertices are added or removed from the Mesh after obtaining an iterator, the behavior of that iterator is undefined. Returns a pointer to an iterator that iterates over the set of all top-level elements in this mesh. The calling code should delete the returned iterator when it is finished with it. If elements are added or removed from the Mesh after obtaining an iterator, the behavior of that iterator is undefined. Returns true or false, indicating whether the vertex is allowed to be repositioned. True indicates that the vertex is fixed and cannot be moved. Note that this is a read-only property; this flag can't be modified by users of the MBMesquite::Mesh interface.
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by check_global_patch_slaved(), check_slaved_coords(), MBMesquite::VertexMover::commit_jacobi_coords(), MBMesquite::DomainUtil::get_fixed_vertices(), PatchDataTest::get_higher_order_vertices(), MBMesquite::VertexMover::get_jacobi_coord_tag(), TCTFauxOptimizer::initialize(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::MeshTransform::loop_over_mesh(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), MBMesquite::MeshDecorator::vertices_get_fixed_flag(), MBMesquite::ParallelMeshImpl::vertices_get_fixed_flag(), and MBMesquite::MeshWriter::write_eps_triangle().
virtual void MBMesquite::Mesh::vertices_get_slaved_flag | ( | const VertexHandle | vert_array[], |
std::vector< bool > & | slaved_flag_array, | ||
size_t | num_vtx, | ||
MsqError & | err | ||
) | [pure virtual] |
Returns true or false, indicating whether the vertex is a higher-order node that should be slaved to the logical mid-point of the element side it lies on or not, respectively.
Note: This function will never be called unless this behavior is requested by calling: InstructionQueue::set_slaved_ho_node_mode( Settings::SLAVE_FLAG )
Implemented in HoSlavedMesh, MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, and MBMesquite::MeshDecorator.
Referenced by check_global_patch_slaved(), check_no_slaved_corners(), check_slaved_coords(), MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::MeshDecorator::vertices_get_slaved_flag(), and MBMesquite::ParallelMeshImpl::vertices_get_slaved_flag().
virtual void MBMesquite::Mesh::vertices_set_byte | ( | const VertexHandle * | vert_array, |
const unsigned char * | byte_array, | ||
size_t | array_size, | ||
MsqError & | err | ||
) | [pure virtual] |
Implemented in MBMesquite::ArrayMesh, MBMesquite::MeshImpl, MBMesquite::MsqIMesh, MBMesquite::MsqMOAB, MBMesquite::ParallelMeshImpl, FakeMesh, and MBMesquite::MeshDecorator.
Referenced by MBMesquite::Instruction::initialize_vertex_byte(), MBMesquite::SlaveBoundaryVertices::loop_over_mesh(), MBMesquite::restore_bytes(), PatchDataTest::test_patch_data_mesh_calcualted_ho_nodes(), MBMesquite::MeshDecorator::vertices_set_byte(), and MBMesquite::ParallelMeshImpl::vertices_set_byte().