41 #ifndef USE_STD_INCLUDES
42 #define USE_STD_INCLUDES 1
45 #ifndef USE_C_PREFIX_INCLUDES
46 #define USE_C_PREFIX_INCLUDES 1
51 #include "MesquiteError.hpp"
52 #include "InstructionQueue.hpp"
53 #include "MeshSet.hpp"
54 #include "TerminationCriterion.hpp"
55 #include "QualityAssessor.hpp"
58 #include "MeanRatioQualityMetric.hpp"
59 #include "EdgeLengthQualityMetric.hpp"
60 #include "LPtoPTemplate.hpp"
61 #include "FeasibleNewton.hpp"
62 #include "ConjugateGradient.hpp"
63 #include "MsqMessage.hpp"
64 using namespace Mesquite;
66 #include "MesquiteError.hpp"
67 #include "MsqVertex.hpp"
75 #define MESQUITE_BEGIN_NAMESPACE namespace Mesquite{
76 #define MESQUITE_END_NAMESPACE }
114 : _pane(p), _verb(0), _with_ghost(with_ghost){
155 virtual int get_geometric_dimension(
MsqError &err)
const {
157 if(_verb >1) std::cout <<
"MesqPane::get_geometric_dimension" << std::endl;
163 if(_verb >1) std::cout <<
"MesqPane::get_total_vertex_count" << std::endl;
164 return _with_ghost ? _pane->size_of_nodes() : _pane->size_of_real_nodes();
169 if(_verb >1) std::cout <<
"MesqPane::get_total_element_count" << std::endl;
170 return _with_ghost ? _pane->size_of_elements() : _pane->size_of_real_elements(); }
180 virtual void get_all_vertices(VertexHandle *vert_array,
190 virtual void get_all_elements(ElementHandle *elem_array,
224 virtual bool vertex_is_fixed(VertexHandle vertex,
MsqError &err);
232 virtual void vertices_are_on_boundary(VertexHandle vert_array[],
bool on_bnd[],
241 virtual void vertices_get_coordinates(VertexHandle vert_array[],
243 const size_t &num_vtx,
251 virtual void vertex_set_coordinates(VertexHandle vertex,
265 virtual void vertex_set_byte (VertexHandle vertex,
278 virtual void vertices_set_byte (VertexHandle *vert_array,
279 unsigned char *byte_array,
287 virtual void vertex_get_byte(VertexHandle vertex,
288 unsigned char *byte,
MsqError &err);
295 virtual void vertices_get_byte(VertexHandle *vertex,
296 unsigned char *byte_array,
306 virtual size_t vertex_get_attached_element_count(VertexHandle vertex,
313 virtual void vertex_get_attached_elements(VertexHandle vertex,
314 ElementHandle* elem_array,
315 size_t sizeof_elem_array,
325 virtual size_t element_get_attached_vertex_count(ElementHandle elem,
363 virtual void elements_get_attached_vertices(ElementHandle *elem_handles,
365 VertexHandle *vert_handles,
366 size_t &sizeof_vert_handles,
368 size_t &sizeof_csr_data,
388 virtual void elements_get_attached_vertex_indices(ElementHandle element[],
390 size_t index_array[],
396 virtual EntityTopology element_get_topology(ElementHandle entity_handle,
403 virtual void elements_get_topologies(ElementHandle *element_handle_array,
405 size_t num_elements,
MsqError &err);
415 virtual void element_tag_create(
const string tag_name,
422 virtual void* tag_get_handle(
const string tag_name,
MsqError &err);
431 virtual void elements_set_tag_data(
const size_t num_elements,
433 TagDataPt
const tag_data_array,
443 virtual void elements_get_tag_data(
const size_t num_elements,
445 TagDataPt &tag_data_array,
455 virtual void release_entity_handles(EntityHandle *handle_array,
467 virtual void release();
475 MAP::Pane_dual_connectivity*
_dc;
517 return (
char*)NULL+_cur;
531 if (_cur <= _size)
return 0;
Iterates through a set of entities. An EntityIterator is typically obtained via Mesh::vertex_iterator...
EntityIterator VertexIterator
void set_verb(int verb)
Set the MesqPane verbose level (int, >= 0)
subroutine invert(a, nrow, det)
Contains the prototypes for the Pane object.
A tag structure required by Mesquite.
Used to hold the error state and return it to the application.
A class for iterating through a Panes vertices or elements.
virtual ~MyEntityIterator()
Destructor.
std::map< std::string, MesqPane::tag > denseTags
This file contains the Mesquite mesh interface. Many users will want to implement a concrete class de...
Vector3D is the object that effeciently stores information about about three-deminsional vectors...
virtual Mesh::EntityHandle operator*() const
Return the handle currently being pointed to by the iterator.
void * EntityHandle
Opaque EntityHandle type and tag type.
#define MESQUITE_BEGIN_NAMESPACE
MesqPane(COM::Pane *p, bool with_ghost=true)
Construct from a pane.
virtual void operator++()
Move to the next entity.
MAP::Pane_dual_connectivity * _dc
std::vector< unsigned char > _vertexBytes
#define MESQUITE_END_NAMESPACE
A class enabling Mesquite calls on Rocmop panes.
size_t vertices_in_topology(EntityTopology)
A Mesquite::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).
virtual void restart()
Moves the iterator back to the first entity in the list.
virtual size_t get_total_element_count(MsqError &err) const
Returns the number of elements.
MyEntityIterator(uint size)
Constructor.
std::vector< bool > _is_border
virtual bool is_at_end() const
Check if we are at the end of the entites.
virtual size_t get_total_vertex_count(MsqError &err) const
Returns the number of nodes.
void * TagHandle
Type used to refer to a tag defintion.
EntityIterator ElementIterator
MsqVertex is the Mesquite object that stores information about the vertices in the mesh...
Utility for detecting boundaries of a pane.