Go to the documentation of this file.
53 #include <GeometryExceptions.H>
67 typedef enum { UNKNOWN_VERSION=-1, VERSION10, VERSION11 } VersionId;
81 Vertices::const_iterator
vertex_begin()
const {
return vertices_.begin(); }
82 Vertices::iterator
vertex_end() {
return vertices_.end(); }
83 Vertices::const_iterator
vertex_end()
const {
return vertices_.end(); }
85 Domains::const_iterator
domain_begin()
const {
return domains_.begin(); }
86 Domains::iterator
domain_end() {
return domains_.end(); }
87 Domains::const_iterator
domain_end()
const {
return domains_.end(); }
90 Geometry(): has_cond_(false), is_nested_(false), size_(0), nb_current_barrier_triangles_(0) {}
91 Geometry(
const std::string& geomFileName,
const std::string& condFileName =
"",
const bool OLD_ORDERING =
false): has_cond_(false), is_nested_(false), size_(0), nb_current_barrier_triangles_(0) { read(geomFileName, condFileName, OLD_ORDERING); }
93 void info(
const bool verbous =
false)
const;
94 const bool&
has_cond()
const {
return has_cond_; }
95 const bool&
is_nested()
const {
return is_nested_; }
96 bool selfCheck()
const;
97 bool check(
const Mesh& m)
const;
98 bool check_inner(
const Matrix& m)
const;
99 const Vertices& vertices()
const {
return vertices_; }
100 const Meshes& meshes()
const {
return meshes_; }
101 const Domains& domains()
const {
return domains_; }
102 size_t size()
const {
return size_; }
108 const Interface& outermost_interface()
const;
109 const Interface& innermost_interface()
const;
111 const Interface& interface(
const std::string&
id)
const;
112 const Domain& domain(
const std::string&
id)
const;
115 void import_meshes(
const Meshes& m);
118 double sigma (
const Mesh& m1,
const Mesh& m2)
const {
return funct_on_domains(m1, m2, IDENTITY); }
119 double sigma_inv (
const Mesh& m1,
const Mesh& m2)
const {
return funct_on_domains(m1, m2, INVERSE); }
120 double indicator (
const Mesh& m1,
const Mesh& m2)
const {
return funct_on_domains(m1, m2, INDICATOR); }
121 double sigma_diff(
const Mesh& m)
const;
122 double sigma (
const std::string&)
const;
123 int oriented(
const Mesh&,
const Mesh&)
const;
125 void read(
const std::string& geomFileName,
const std::string& condFileName =
"",
const bool OLD_ORDERING =
false);
127 void load_vtp(
const std::string& filename,
Matrix& data,
const bool READ_DATA =
true);
128 void write_vtp(
const std::string& filename,
const Matrix& data =
Matrix())
const;
134 const std::vector<Strings>&
geo_group()
const {
return geo_group_; }
135 void mark_current_barrier();
136 const Mesh& mesh(
const std::string&
id)
const;
140 typedef enum { IDENTITY,
INVERSE, INDICATOR} Function;
142 Mesh& mesh(
const std::string&
id);
153 void generate_indices(
const bool);
Interface class An interface is a closed-shape composed of oriented meshes (here pointer to meshes)
const bool & has_cond() const
std::vector< Domain > Domains
A vector of Domain is called Domains.
Meshes::iterator iterator
Default iterator of a Geometry is an Iterator on the meshes.
const std::vector< Strings > & geo_group() const
size_t nb_current_barrier_triangles_
number of triangles with 0 normal current. Including triangles of invalid meshes.
Domains::iterator domain_end()
std::vector< Vertex > Vertices
size_t nb_domains() const
size_t & nb_current_barrier_triangles()
Domains::const_iterator domain_end() const
a Domain is a vector of HalfSpace A Domain is the intersection of simple domains (of type HalfSpace).
Geometry(const std::string &geomFileName, const std::string &condFileName="", const bool OLD_ORDERING=false)
double sigma_inv(const Mesh &m1, const Mesh &m2) const
const size_t & nb_current_barrier_triangles() const
handle multiple 0 conductivity domains
Domains::iterator domain_begin()
const_iterator begin() const
Vertices::const_iterator vertex_end() const
double & sigma()
The conductivity of the domain.
const bool & is_nested() const
iterator begin()
Iterators.
double sigma(const Mesh &m1, const Mesh &m2) const
std::set< Vertex > invalid_vertices_
handle multiple 0 conductivity domains
Meshes::const_iterator const_iterator
VersionId version() const
Domains::const_iterator domain_begin() const
Geometry contains the electrophysiological model Here are stored the vertices, meshes and domains.
Vertices::iterator vertex_end()
VersionId version_id
Members.
file containing the definition of a Domain. A domain is the association of a name and a vector of pai...
std::vector< Mesh > Meshes
A vector of Mesh is called Meshes.
std::vector< Strings > geo_group_
Mesh names that belong to different isolated groups.
Vertices::const_iterator vertex_begin() const
void load_vtp(const std::string &filename)
const_iterator end() const
size_t nb_triangles() const
size_t nb_vertices() const
const size_t nb_invalid_vertices()
const double & sigma(const Domain &d) const
Vertices::iterator vertex_begin()
A class to read geometry and cond file.
double indicator(const Mesh &m1, const Mesh &m2) const