Namespace xlifepp::subdivision#

namespace subdivision

namespace dedicated to tools of “subdivision” mesh generator

Typedefs

typedef std::map<pair_nn, number_t> map_pair_num
typedef std::map<set_n, number_t> map_set_num
typedef std::map<set_n, pair_nn> map_set_pair
typedef std::map<set_n, pair_in> map_set_pair_in
typedef std::map<set_n, std::vector<pair_nn>> map_set_vec
typedef std::pair<int_t, number_t> pair_in
typedef std::pair<number_t, number_t> pair_nn
typedef Point (SubdivisionMesh::* PtCompFun)(const refnum_t localcod, const real_t *coef, const std::vector<Point> &VP) const
typedef number_t refnum_t
typedef std::set<number_t> set_n
typedef Vector<real_t> Vect

Enums

enum GeomEndShape

Values:

enumerator None
enumerator Flat
enumerator Cone
enumerator Ellipsoid
enumerator Sphere
enum topologicalArea

Values:

enumerator boundaryArea
enumerator interfaceArea
enumerator subdomainArea

Functions

Point barycenter(const real_t *coef, const std::vector<Point> &VP)

Computation of the barycenter of the points stored in the vector VP, with associated coefficients stored in coef.

barycenter of n points

Point barycenter(const std::vector<real_t> &coef, const std::vector<Point> &VP)

Computation of the barycenter of the points stored in the vector VP, with associated coefficients stored in coefn as std::vector.

int DECHOL(const vector<vector<real_t>> &A, int n, vector<vector<real_t>> &L, real_t eps)
void DRCHOL(const vector<vector<real_t>> &L, int n, vector<vector<real_t>> &B, int m)
string fmtTeX(const string &strorig)

TeX format.

This function returns a copy of strorig where some characters have been replaced by their equivalent in typewriter font (tt) in order to allow compilation by TeX.

void gsubstitute(string &str, const char *that, const char *bythat)

Global substitution.

This function substitutes each occurrence of substring that in str by the string bythat.

void IMP(const vector<vector<number_t>> &comesh, const vector<pair<short, short>> &rkEV, const vector<number_t> &rkUnk, const vector<number_t> &rkData)
Point projOnPlane(const Point &P, const Point &A, const Vect &U)

Projection of the point P onto the plane defined by the point A and the normal unitary vector U.

projection onto the plane defined by the point A and the normal unitary vector U

Point projOnSph(const real_t *coef, const std::vector<Point> &VP, const real_t Radius)

Projection onto the sphere S of the barycenter of the points stored in VP with associated coefficients stored in coef.

projection onto a sphere of radius Radius of the barycenter of n points

The points in VP are assumed to be lying on the sphere S centered at the origin, with the radius Radius.

Matrix<real_t> rotationMatrix(real_t theta, dimen_t axis)

Apply rotations defined in rots and the translation of vector U to each point of Pt.

Point rotInPlane(const Point &P, const real_t ct, const real_t st, const Point &A, const Vect &U)

Rotation of the point P by the angle theta (given by their cosine ct and sine st) around the axis defined by the point A and the unitary vector U in the plane defined by the point P and the normal unitary vector U.

rotation of the current point around the axis defined by the point A and the unitary vector U, in the plane orthogonal to U

Point rotOnSph(const Point &P1, const Point &P2, const int k, const int n)

Rotation of P1 by the angle alpha = k/n * ang(P1,O,P2) in the plane (P1,O,P2).

rotation of P1 by the angle k/n * ang(P1, O, P2)

P1 and P2 are assumed to be lying onto the sphere, centered at the origin 0.

Point translate(const Point &P, const real_t lambda, const Vect &U)

Translation of the point P by the vector lambda*U.

translation of the current point by the vector lambda*U

template<class T_>
class CartesianFig : public xlifepp::subdivision::GeomFigure
template<class T_>
class CartesianMesh : public xlifepp::subdivision::GeomFigureMesh<T_>
class DefaultGeometry : public xlifepp::subdivision::PatchGeometry

Subclassed by xlifepp::subdivision::SurfPlane

struct DivideByZero
#include <PatchGeometry.hpp>

Structure used to transmit information in case an exception is thrown.

class GeomFigure

Subclassed by xlifepp::subdivision::CartesianFig< Hexahedron >, xlifepp::subdivision::CartesianFig< Quadrangle >, xlifepp::subdivision::Simplex< Tetrahedron >, xlifepp::subdivision::Simplex< Triangle >, xlifepp::subdivision::CartesianFig< T_ >, xlifepp::subdivision::Simplex< T_ >

template<class T_>
class GeomFigureMesh : public xlifepp::subdivision::SubdivisionMesh

Subclassed by xlifepp::subdivision::CartesianMesh< T_ >, xlifepp::subdivision::SimplexMesh< T_ >

class Hexahedron : public xlifepp::subdivision::CartesianFig<Hexahedron>
class HexahedronMesh : public xlifepp::subdivision::CartesianMesh<Hexahedron>

Subclassed by xlifepp::subdivision::VolMeshHexCone, xlifepp::subdivision::VolMeshHexCube, xlifepp::subdivision::VolMeshHexCylinder

struct HOV_error
#include <GeomFigure.hpp>

Structure used to transmit information in case an exception is thrown.

Used in GeomFigure. Type referenced by GeomFigureMesh.

class PatchGeometry
#include <PatchGeometry.hpp>

abstract base class that defines the geometrical information associated to the patches of the domain.

Subclassed by xlifepp::subdivision::DefaultGeometry, xlifepp::subdivision::SurfRevolution

class Quadrangle : public xlifepp::subdivision::CartesianFig<Quadrangle>
class QuadrangleMesh : public xlifepp::subdivision::CartesianMesh<Quadrangle>
#include <QuadrangleMesh.hpp>

abstract class that holds a mesh of quadrangles built by successive subdivisions of an initial elementary mesh consisting of several quadrangles.

Subclassed by xlifepp::subdivision::SurfMeshQuaCone, xlifepp::subdivision::SurfMeshQuaCube, xlifepp::subdivision::SurfMeshQuaCylinder, xlifepp::subdivision::SurfMeshQuaDisk, xlifepp::subdivision::SurfMeshQuaSet

struct ShapeInfo
template<class T_>
class Simplex : public xlifepp::subdivision::GeomFigure
template<class T_>
class SimplexMesh : public xlifepp::subdivision::GeomFigureMesh<T_>
class SubdivisionMesh

Subclassed by xlifepp::subdivision::GeomFigureMesh< Hexahedron >, xlifepp::subdivision::GeomFigureMesh< Quadrangle >, xlifepp::subdivision::GeomFigureMesh< Tetrahedron >, xlifepp::subdivision::GeomFigureMesh< Triangle >, xlifepp::subdivision::GeomFigureMesh< T_ >

class SurfCone : public xlifepp::subdivision::SurfRevolution
class SurfCylinder : public xlifepp::subdivision::SurfRevolution
class SurfEllipsoid : public xlifepp::subdivision::SurfRevolution
class SurfMeshQuaCone : public xlifepp::subdivision::QuadrangleMesh
class SurfMeshQuaCube : public xlifepp::subdivision::QuadrangleMesh
class SurfMeshQuaCylinder : public xlifepp::subdivision::QuadrangleMesh
class SurfMeshQuaDisk : public xlifepp::subdivision::QuadrangleMesh
class SurfMeshQuaSet : public xlifepp::subdivision::QuadrangleMesh
class SurfMeshTriCone : public xlifepp::subdivision::TriangleMesh
class SurfMeshTriCylinder : public xlifepp::subdivision::TriangleMesh
class SurfMeshTriDisk : public xlifepp::subdivision::TriangleMesh
class SurfMeshTriSet : public xlifepp::subdivision::TriangleMesh
#include <SurfMeshTriSet.hpp>

This class allows the construction of a surfacic mesh made of triangles.

It is built by successive subdivisions of an initial elementary mesh consisting of a set of triangles given by the user.

class SurfMeshTriSphere : public xlifepp::subdivision::TriangleMesh
class SurfPlane : public xlifepp::subdivision::DefaultGeometry
#include <DefaultGeometry.hpp>

class that defines the shape of a plane surface on the boundary or inside (interface) of a 3D domain.

class SurfRevolution : public xlifepp::subdivision::PatchGeometry

Subclassed by xlifepp::subdivision::SurfCone, xlifepp::subdivision::SurfCylinder, xlifepp::subdivision::SurfEllipsoid, xlifepp::subdivision::SurfSphere

class SurfSphere : public xlifepp::subdivision::SurfRevolution
class Tetrahedron : public xlifepp::subdivision::Simplex<Tetrahedron>
class TetrahedronMesh : public xlifepp::subdivision::SimplexMesh<Tetrahedron>

Subclassed by xlifepp::subdivision::VolMeshTetCone, xlifepp::subdivision::VolMeshTetCube, xlifepp::subdivision::VolMeshTetCylinder, xlifepp::subdivision::VolMeshTetSphere

class TeXPolygon
class TopoGeom
class Triangle : public xlifepp::subdivision::Simplex<Triangle>
class TriangleMesh : public xlifepp::subdivision::SimplexMesh<Triangle>

Subclassed by xlifepp::subdivision::SurfMeshTriCone, xlifepp::subdivision::SurfMeshTriCylinder, xlifepp::subdivision::SurfMeshTriDisk, xlifepp::subdivision::SurfMeshTriSet, xlifepp::subdivision::SurfMeshTriSphere

class Vertex
class VolMeshHexCone : public xlifepp::subdivision::HexahedronMesh
class VolMeshHexCube : public xlifepp::subdivision::HexahedronMesh
class VolMeshHexCylinder : public xlifepp::subdivision::HexahedronMesh
class VolMeshTetCone : public xlifepp::subdivision::TetrahedronMesh
class VolMeshTetCube : public xlifepp::subdivision::TetrahedronMesh
class VolMeshTetCylinder : public xlifepp::subdivision::TetrahedronMesh
class VolMeshTetSphere : public xlifepp::subdivision::TetrahedronMesh