20 #ifndef LIBMESH_MESH_DATA_H
21 #define LIBMESH_MESH_DATA_H
39 class MeshDataUnvHeader;
101 void activate (
const std::string & descriptor=
"");
132 void slim (
const bool node_id_map =
true,
133 const bool elem_id_map =
true);
150 std::vector<Number> & data_values,
151 std::vector<std::string> & data_names)
const;
159 void read (
const std::string &
name);
192 const unsigned int i=0)
const;
206 const std::vector<Number> &
get_data (
const Node * node)
const;
212 void set_data (
const Node * node,
const std::vector<Number> & val);
258 std::vector<Number> > & nd,
259 const bool close_elem_data =
true);
270 const unsigned int i=0)
const;
284 const std::vector<Number> &
get_data (
const Elem * elem)
const;
290 void set_data (
const Elem * elem,
const std::vector<Number> & val);
337 const bool close_node_data =
true);
426 const unsigned int foreign_node_id);
436 const unsigned int foreign_elem_id);
460 void read_unv (
const std::string & file_name);
475 void write_unv (
const std::string & file_name);
524 std::map<
const Node *,
531 std::map<
const Node *,
538 std::map<
unsigned int,
548 std::map<
const Elem *,
555 std::map<
const Elem *,
561 std::map<
unsigned int,
789 bool read (std::istream & in_file);
794 void write (std::ostream & out_file);
829 const unsigned int i)
const
834 std::map<
const Node *,
835 std::vector<Number> >::const_iterator pos =
_node_data.find(node);
841 libmesh_assert_less (i, pos->second.size());
842 return pos->second[i];
853 std::map<
const Node *,
854 std::vector<Number> >::const_iterator pos =
_node_data.find(node);
867 std::map<
const Node *,
868 std::vector<Number> >::const_iterator pos =
_node_data.find(node);
872 libmesh_error_msg(
"ERROR: No data for this node. Use has_data() first!");
882 const std::vector<Number> & val)
909 const unsigned int i)
const
914 std::map<
const Elem *,
915 std::vector<Number> >::const_iterator pos =
_elem_data.find(elem);
921 libmesh_assert_less (i, pos->second.size());
922 return pos->second[i];
933 std::map<
const Elem *,
934 std::vector<Number> >::const_iterator pos =
_elem_data.find(elem);
947 std::map<
const Elem *,
948 std::vector<Number> >::const_iterator pos =
_elem_data.find(elem);
952 libmesh_error_msg(
"ERROR: No data for this element. Use has_data() first!");
962 const std::vector<Number> & val)
1021 const unsigned int foreign_node_id)
1038 _node_id.insert(std::make_pair(node, foreign_node_id));
1039 _id_node.insert(std::make_pair(foreign_node_id, node));
1047 const unsigned int foreign_elem_id)
1056 _elem_id.insert(std::make_pair(elem, foreign_elem_id));
1057 _id_elem.insert(std::make_pair(foreign_elem_id, elem));
1084 #endif // LIBMESH_MESH_DATA_H
std::string name(const ElemQuality q)
const std::vector< Number > & get_data(const Node *node) const
void read_unv_implementation(std::istream &in_file)
A geometric point in (x,y,z) space associated with a DOF.
std::map< const Node *, std::vector< Number > >::const_iterator const_node_data_iterator
bool has_data(const Node *node) const
unsigned int n_val_per_elem() const
libmesh_assert(remote_elem)
const_elem_data_iterator elem_data_end() const
void insert_node_data(std::map< const Node *, std::vector< Number > > &nd, const bool close_elem_data=true)
Number operator()(const Node *node, const unsigned int i=0) const
const_node_data_iterator node_data_begin() const
The base class for all geometric element types.
void add_foreign_node_id(const Node *node, const unsigned int foreign_node_id)
void write_xdr(const std::string &name, const XdrMODE mode=WRITE)
const_node_data_iterator node_data_end() const
void slim(const bool node_id_map=true, const bool elem_id_map=true)
void print_info(std::ostream &os=libMesh::out) const
std::map< unsigned int, const Node * > _id_node
const MeshDataUnvHeader & get_unv_header() const
bool elem_initialized() const
void translate(const MeshBase &out_mesh, std::vector< Number > &data_values, std::vector< std::string > &data_names) const
unsigned int node_to_foreign_id(const Node *n) const
std::string get_info() const
void set_unv_header(MeshDataUnvHeader *unv_header)
MeshData(const MeshBase &m)
const Elem * foreign_id_to_elem(const unsigned int fid) const
void read_unv(const std::string &file_name)
std::map< const Elem *, std::vector< Number > >::const_iterator const_elem_data_iterator
void read_xdr(const std::string &name, const XdrMODE mode=READ)
std::string _data_descriptor
void write(const std::string &name)
dof_id_type n_elem_data() const
unsigned int elem_to_foreign_id(const Elem *n) const
std::map< const Elem *, unsigned int > _elem_id
void read(const std::string &name)
void write_unv(const std::string &file_name)
MeshDataUnvHeader * _unv_header
void set_data(const Node *node, const std::vector< Number > &val)
void activate(const std::string &descriptor="")
friend std::ostream & operator<<(std::ostream &os, const MeshData &m)
void insert_elem_data(std::map< const Elem *, std::vector< Number > > &ed, const bool close_node_data=true)
void close_foreign_id_maps()
void enable_compatibility_mode(const std::string &descriptor="")
dof_id_type n_node_data() const
std::map< unsigned int, const Elem * > _id_elem
void add_foreign_elem_id(const Elem *elem, const unsigned int foreign_elem_id)
std::map< const Node *, unsigned int > _node_id
void assign(const MeshData &omd)
unsigned int n_val_per_node() const
const Node * foreign_id_to_node(const unsigned int fid) const
std::map< const Node *, std::vector< Number > > _node_data
void read_tetgen(const std::string &name)
const_elem_data_iterator elem_data_begin() const
OStreamProxy out(std::cout)
std::map< const Elem *, std::vector< Number > > _elem_data
void write_unv_implementation(std::ostream &out_file)
bool compatibility_mode() const
bool node_initialized() const