Class xlifepp::subdivision::TopoGeom#

class TopoGeom#

Collaboration diagram for xlifepp::subdivision::TopoGeom:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="std::vector< T >" tooltip="std::vector< T >"] "6" [label="std::vector< number_t >" tooltip="std::vector< number_t >"] "4" [label="std::vector< refnum_t >" tooltip="std::vector< refnum_t >"] "8" [label="std::vector< std::pair< xlifepp::subdivision::PatchGeometry *, refnum_t > >" tooltip="std::vector< std::pair< xlifepp::subdivision::PatchGeometry *, refnum_t > >"] "5" [label="std::vector< std::string >" tooltip="std::vector< std::string >"] "2" [label="std::vector< std::vector< number_t > >" tooltip="std::vector< std::vector< number_t > >"] "7" [label="std::vector< xlifepp::subdivision::PatchGeometry * >" tooltip="std::vector< xlifepp::subdivision::PatchGeometry * >"] "1" [label="xlifepp::subdivision::TopoGeom" tooltip="xlifepp::subdivision::TopoGeom" fillcolor="#BFBFBF"] "6" -> "3" [dir=forward tooltip="template-instance"] "4" -> "3" [dir=forward tooltip="template-instance"] "8" -> "3" [dir=forward tooltip="template-instance"] "5" -> "3" [dir=forward tooltip="template-instance"] "2" -> "3" [dir=forward tooltip="template-instance"] "7" -> "3" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "4" [dir=forward tooltip="usage"] "1" -> "5" [dir=forward tooltip="usage"] "1" -> "6" [dir=forward tooltip="usage"] "1" -> "7" [dir=forward tooltip="usage"] "1" -> "8" [dir=forward tooltip="usage"] }

Public Functions

inline TopoGeom()#

default constructor

TopoGeom(const number_t nbBound, const number_t *B_patch, const number_t *B_dimen, const number_t nbIntrf, const number_t *I_patch, const number_t *I_dimen, const number_t nbSbDom, const number_t *D_patch, const number_t *D_dimen, PatchGeometry **const P_geom)#

general constructor by boundaries, interfaces and subdomains, and their associated patches and dimensions, along with the patches shapes.

General constructor.

The nbBound boundaries (respectively the nbIntrf interfaces and the nbSbDom subdomains) to be created are defined by the associated patch numbers B_patch (respectively I_patch and D_patch) and their dimensions B_dimen (respectively I_dimen and D_dimen). The numbers start from 1. The nbBound+nbIntrf+nbSbDom patches are defined by their associated shapes P_geom. Once the object is built by this constructor, each boundary, interface or subdomain consists of one patch ; they can then be modified by setBoundaries, setInterfaces and setSubdomains.

Caution: Arrays B_patch and B_dimen must have the same size nbBound. Arrays I_patch and I_dimen must have the same size nbIntrf. Arrays D_patch and D_dimen must have the same size nbSbDom. Array P_geom must have nbBound+nbIntrf+nbSbDom elements. This is not checked (and cannot be with this prototype).

To be called as (for example): TopoGeom(sizeof(B_patch)/sizeof(number_t),B_patch,B_dimen, sizeof(I_patch)/sizeof(number_t),I_patch,I_dimen, sizeof(D_patch)/sizeof(number_t),D_patch,D_dimen, P_geom);

TopoGeom(const number_t nbBound, const number_t nbIntrf = 0, const number_t nbSbDom = 1)#

simple constructor by number of boundaries, interfaces and subdomains

Simple constructor by number of boundaries, interfaces and subdomains.

nbBound, nbIntrf and nbSbDom are respectively the number of boundaries, interfaces and subdomains to be created. Once the object is built by this constructor, they each consist of one patch ; they can then be modified by setBoundaries, setInterfaces and setSubdomains. The default shape of the associated patches is plane. The default dimension of the boundaries and interfaces is 2. The default dimension of the subdomains is 3. Some members have no default values. They can be changed by the public modifiers. Nota: TopoGeom(n) is equivalent to TopoGeom(n, B_patch, B_dimen, 0, I_patch, I_dimen, 1, D_patch, D_dimen, P_geom) with B_patch = {1,2…,n}, B_dimen = {2,2…,2} (n times), I_patch = {}, I_dimen = {}, D_patch = {n+1}, D_dimen = {3}, P_geom = {SP,… SP, DG} (n times SP + DG).

std::string descriptionOf(const topologicalArea TA, const number_t num) const#

returns description of boundary, interface or subdomain num, num >=1.

Returns the description associated to a boundary, an interface or a subdomain whose number is num, num >=1.

The description is deduced from the patch descriptions.

number_t dimensionOf(const topologicalArea TA, const number_t num) const#

returns dimension of boundary area, interface area or subdomain area num, num >=1

Returns the dimension associated to the topological area TA with number num, num >=1, which can be of kind boundary, interface or subdomain.

It is the dimension associated to one of its patches ; we take the first one.

std::string getAttribute(const topologicalArea TA, const number_t num) const#

returns user attribute of area num, num >=1, of kind TA.

Returns the user attribute associated to the topological area TA with number num, num >=1, which can be of kind boundary, interface or subdomain.

A kind of area may be a boundary, an interface or a subdomain.

std::string kindOf(const topologicalArea TA) const#

returns kind of area (boundary, interface or subdomain)

Returns the kind of area (boundary, interface or subdomain).

refnum_t localCodeOf(const topologicalArea TA, const number_t num) const#

returns reference number (localization code) of boundary area, interface area or subdomain area num, num >=1

Returns the reference number (localization code) associated to the topological area TA with number num, num >=1, which can be of kind boundary, interface or subdomain.

refnum_t maskOf(const topologicalArea TA) const#

returns boundary mask, interface mask or subdomain mask

Returns boundary mask, interface mask or subdomain mask.

std::string nameOf(const topologicalArea TA, const number_t num) const#

returns name of boundary, interface or subdomain num, num >=1 The name is deduced from the patch names.

Returns the name associated to a boundary, an interface or a subdomain whose number is num, num >=1.

The name is deduced from the patch names.

number_t numberOf(const topologicalArea TA) const#

returns number of boundaries, interfaces or subdomains.

Returns the number of boundary areas, interface areas or subdomain areas.

inline number_t numberOfBndryPatches() const#

number of boundary patches, interface patches and subdomain patches

inline number_t numberOfCurvedPatches() const#

returns number of curved patches

inline number_t numberOfPatches() const#

returns total number of patches

void print(std::ostream &os, const bool forTeX = false) const#

prints, on stream os, the information about the boundaries, interfaces and subdomains

Prints, on stream os, the information about the boundaries, interfaces and subdomains.

void printLoc(std::ostream &os, const refnum_t localcod) const#

prints, on stream os, the name of the patches corresponding to the localisation code localcod

Prints, on stream os, on which patches lies the point whose localization code is localcod.

If the localization code is zero, the point is sayed to be “Nowhere”, which is an error.

std::string &setAttribute(const topologicalArea TA, const number_t num)#

returns a reference to user attribute of area num, num >=1, of kind TA.

Returns a reference to the user attribute associated to the topological area TA with number num, num >=1, which can be of kind boundary, interface or subdomain.

A kind of area may be a boundary, an interface or a subdomain.

inline bool setBoundaries(const std::vector<std::vector<number_t>> &group)#

redefines boundaries

inline std::string &setDescription(const number_t num)#

returns reference to description of patch num, num >=1

inline bool setInterfaces(const std::vector<std::vector<number_t>> &group)#

redefines interfaces

inline bool setSubdomains(const std::vector<std::vector<number_t>> &group)#

redefines subdomains

inline PatchGeometry *shape(const number_t num) const#

returns pointer to shape object associated to patch num, num >=1

inline std::pair<PatchGeometry*, refnum_t> shapeNlcode(const number_t ind) const#

returns data associated to a curved patch (shape aNd localization code) whose index is ind in the vector

inline refnum_t sigma(const number_t num) const#

returns reference number (localization code) of patch num, num >=1