Class xlifepp::GeomDomain#

class GeomDomain#

Inheritence diagram for xlifepp::GeomDomain:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "2" [label="xlifepp::AnalyticalDomain" tooltip="xlifepp::AnalyticalDomain"] "3" [label="xlifepp::CompositeDomain" tooltip="xlifepp::CompositeDomain"] "1" [label="xlifepp::GeomDomain" tooltip="xlifepp::GeomDomain" fillcolor="#BFBFBF"] "4" [label="xlifepp::MeshDomain" tooltip="xlifepp::MeshDomain"] "5" [label="xlifepp::PointsDomain" tooltip="xlifepp::PointsDomain"] "2" -> "1" [dir=forward tooltip="public-inheritance"] "3" -> "1" [dir=forward tooltip="public-inheritance"] "4" -> "1" [dir=forward tooltip="public-inheritance"] "5" -> "1" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::GeomDomain:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "23" [label="xlifepp::Collection< string_t >" tooltip="xlifepp::Collection< string_t >"] "16" [label="xlifepp::Matrix< real_t >" tooltip="xlifepp::Matrix< real_t >"] "20" [label="xlifepp::Vector< real_t >" tooltip="xlifepp::Vector< real_t >"] "31" [label="xlifepp::Vector< xlifepp::Vector< real_t > >" tooltip="xlifepp::Vector< xlifepp::Vector< real_t > >"] "36" [label="std::list< std::pair< number_t, real_t > >" tooltip="std::list< std::pair< number_t, real_t > >"] "12" [label="std::map< number_t, std::vector< number_t > >" tooltip="std::map< number_t, std::vector< number_t > >"] "10" [label="std::map< number_t, xlifepp::Geometry * >" tooltip="std::map< number_t, xlifepp::Geometry * >"] "35" [label="std::map< string_t, number_t >" tooltip="std::map< string_t, number_t >"] "37" [label="std::list< T >" tooltip="std::list< T >"] "11" [label="std::map< K, T >" tooltip="std::map< K, T >"] "7" [label="std::vector< T >" tooltip="std::vector< T >"] "26" [label="std::vector< T >" tooltip="std::vector< T >"] "19" [label="std::vector< K >" tooltip="std::vector< K >"] "6" [label="std::vector< RealPair >" tooltip="std::vector< RealPair >"] "42" [label="std::vector< const xlifepp::GeomDomain * >" tooltip="std::vector< const xlifepp::GeomDomain * >"] "22" [label="std::vector< const xlifepp::Transformation * >" tooltip="std::vector< const xlifepp::Transformation * >"] "27" [label="std::vector< number_t >" tooltip="std::vector< number_t >"] "17" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "41" [label="std::vector< std::vector< GeoNumPair > >" tooltip="std::vector< std::vector< GeoNumPair > >"] "13" [label="std::vector< std::vector< int_t > >" tooltip="std::vector< std::vector< int_t > >"] "24" [label="std::vector< string_t >" tooltip="std::vector< string_t >"] "40" [label="std::vector< xlifepp::GeomDomain * >" tooltip="std::vector< xlifepp::GeomDomain * >"] "39" [label="std::vector< xlifepp::GeomElement * >" tooltip="std::vector< xlifepp::GeomElement * >"] "34" [label="std::vector< xlifepp::Parameter * >" tooltip="std::vector< xlifepp::Parameter * >"] "9" [label="std::vector< xlifepp::Point >" tooltip="std::vector< xlifepp::Point >"] "28" [label="std::vector< xlifepp::Transformation * >" tooltip="std::vector< xlifepp::Transformation * >"] "32" [label="std::vector< xlifepp::Vector< real_t > >" tooltip="std::vector< xlifepp::Vector< real_t > >"] "5" [label="xlifepp::BoundingBox" tooltip="xlifepp::BoundingBox"] "25" [label="xlifepp::Collection< T >" tooltip="xlifepp::Collection< T >"] "2" [label="xlifepp::DomainInfo" tooltip="xlifepp::DomainInfo"] "14" [label="xlifepp::ExtrusionData" tooltip="xlifepp::ExtrusionData"] "38" [label="xlifepp::GeoNode" tooltip="xlifepp::GeoNode"] "1" [label="xlifepp::GeomDomain" tooltip="xlifepp::GeomDomain" fillcolor="#BFBFBF"] "4" [label="xlifepp::Geometry" tooltip="xlifepp::Geometry"] "18" [label="xlifepp::Matrix< K >" tooltip="xlifepp::Matrix< K >"] "3" [label="xlifepp::Mesh" tooltip="xlifepp::Mesh"] "8" [label="xlifepp::MinimalBox" tooltip="xlifepp::MinimalBox"] "33" [label="xlifepp::Parameters" tooltip="xlifepp::Parameters"] "30" [label="xlifepp::Parametrization" tooltip="xlifepp::Parametrization"] "29" [label="xlifepp::Point" tooltip="xlifepp::Point"] "15" [label="xlifepp::Transformation" tooltip="xlifepp::Transformation"] "21" [label="xlifepp::Vector< K >" tooltip="xlifepp::Vector< K >"] "23" -> "24" [dir=forward tooltip="public-inheritance"] "23" -> "25" [dir=forward tooltip="template-instance"] "16" -> "17" [dir=forward tooltip="public-inheritance"] "16" -> "18" [dir=forward tooltip="template-instance"] "20" -> "17" [dir=forward tooltip="public-inheritance"] "20" -> "21" [dir=forward tooltip="template-instance"] "31" -> "32" [dir=forward tooltip="public-inheritance"] "31" -> "21" [dir=forward tooltip="template-instance"] "36" -> "37" [dir=forward tooltip="template-instance"] "12" -> "11" [dir=forward tooltip="template-instance"] "10" -> "11" [dir=forward tooltip="template-instance"] "35" -> "11" [dir=forward tooltip="template-instance"] "19" -> "7" [dir=forward tooltip="template-instance"] "6" -> "7" [dir=forward tooltip="template-instance"] "42" -> "7" [dir=forward tooltip="template-instance"] "22" -> "7" [dir=forward tooltip="template-instance"] "27" -> "7" [dir=forward tooltip="template-instance"] "17" -> "7" [dir=forward tooltip="template-instance"] "41" -> "7" [dir=forward tooltip="template-instance"] "13" -> "7" [dir=forward tooltip="template-instance"] "24" -> "7" [dir=forward tooltip="template-instance"] "40" -> "7" [dir=forward tooltip="template-instance"] "39" -> "7" [dir=forward tooltip="template-instance"] "34" -> "7" [dir=forward tooltip="template-instance"] "9" -> "7" [dir=forward tooltip="template-instance"] "28" -> "7" [dir=forward tooltip="template-instance"] "32" -> "7" [dir=forward tooltip="template-instance"] "5" -> "6" [dir=forward tooltip="usage"] "25" -> "26" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="usage"] "14" -> "15" [dir=forward tooltip="usage"] "14" -> "23" [dir=forward tooltip="usage"] "14" -> "27" [dir=forward tooltip="usage"] "14" -> "17" [dir=forward tooltip="usage"] "14" -> "20" [dir=forward tooltip="usage"] "14" -> "28" [dir=forward tooltip="usage"] "14" -> "29" [dir=forward tooltip="usage"] "38" -> "38" [dir=forward tooltip="usage"] "38" -> "4" [dir=forward tooltip="usage"] "1" -> "2" [dir=forward tooltip="usage"] "1" -> "1" [dir=forward tooltip="usage"] "1" -> "4" [dir=forward tooltip="usage"] "1" -> "42" [dir=forward tooltip="usage"] "4" -> "5" [dir=forward tooltip="usage"] "4" -> "8" [dir=forward tooltip="usage"] "4" -> "10" [dir=forward tooltip="usage"] "4" -> "12" [dir=forward tooltip="usage"] "4" -> "13" [dir=forward tooltip="usage"] "4" -> "14" [dir=forward tooltip="usage"] "4" -> "30" [dir=forward tooltip="usage"] "4" -> "4" [dir=forward tooltip="usage"] "4" -> "38" [dir=forward tooltip="usage"] "18" -> "19" [dir=forward tooltip="public-inheritance"] "3" -> "4" [dir=forward tooltip="usage"] "3" -> "9" [dir=forward tooltip="usage"] "3" -> "39" [dir=forward tooltip="usage"] "3" -> "40" [dir=forward tooltip="usage"] "3" -> "27" [dir=forward tooltip="usage"] "3" -> "41" [dir=forward tooltip="usage"] "3" -> "3" [dir=forward tooltip="usage"] "8" -> "9" [dir=forward tooltip="usage"] "33" -> "34" [dir=forward tooltip="usage"] "33" -> "35" [dir=forward tooltip="usage"] "30" -> "4" [dir=forward tooltip="usage"] "30" -> "20" [dir=forward tooltip="usage"] "30" -> "31" [dir=forward tooltip="usage"] "30" -> "3" [dir=forward tooltip="usage"] "30" -> "33" [dir=forward tooltip="usage"] "30" -> "36" [dir=forward tooltip="usage"] "29" -> "17" [dir=forward tooltip="public-inheritance"] "15" -> "16" [dir=forward tooltip="usage"] "15" -> "20" [dir=forward tooltip="usage"] "15" -> "22" [dir=forward tooltip="usage"] "21" -> "19" [dir=forward tooltip="public-inheritance"] }

base class of geometric domain

Subclassed by xlifepp::AnalyticalDomain, xlifepp::CompositeDomain, xlifepp::MeshDomain, xlifepp::PointsDomain

Public Functions

inline GeomDomain(const GeomDomain &d)#

forbidden copy constructor

GeomDomain(const Mesh&, const string_t&, dimen_t, const string_t &desc = "", Geometry *g = nullptr, bool ts = true)#

constructor of a meshdomain

GeomDomain(const std::vector<Point>&, const string_t &na = "")#

constructor of points domain

GeomDomain(const string_t &na = "", dimen_t d = 0, const Mesh *m = nullptr, Geometry *g = nullptr)#

default and basic constructor

GeomDomain(SetOperationType sot, const GeomDomain&, const GeomDomain&, const string_t &na = "")#

constructor of a composite domain with two domains

GeomDomain(SetOperationType sot, const std::vector<const GeomDomain*>&, const string_t &na = "")#

constructor of a composite domain with n domains

virtual ~GeomDomain()#

destructor

void addSuffix(const string_t &s)#

add a suffix to domain name

virtual AnalyticalDomain *analyticalDomain()#

access to child AnalyticalDomain

virtual const AnalyticalDomain *analyticalDomain() const#

access to child AnalyticalDomain (const)

const Parametrization &boundaryParametrization() const#

return boundary parametrization if allocated in Geometry, error if not

virtual void clearGeomMapData()#

clear temporary GeomData structures of MeshElement’s

virtual bool colorFlag() const#

return useColorFlag status

virtual CompositeDomain *compositeDomain()#

access to child CompositeDomain

virtual const CompositeDomain *compositeDomain() const#

access to child CompositeDomain (const)

virtual void computeStatistics(bool computeSideInfo = false)#

update geometric domain info (measure, characteristic sizes, …)

inline const string_t &description() const#

return domain description (const)

inline dimen_t dim() const#

return domain dimension (const)

inline DomainInfo &domainInfo()#

return domainInfo

inline const DomainInfo &domainInfo() const#

return domainInfo (const)

inline const GeomDomain *domainp() const#

return domain_p pointer (const)

inline DomainType domType() const#

return domain type (const)

inline const string_t domTypeName() const#

return domain type name(const)

virtual GeomElement *element(number_t)#

access to k-th element (k>=1), 0 if not available

inline virtual GeomDomain &extendDomain(bool useVertex = false, const GeomDomain &omega = GeomDomain()) const#

find or create extension of a side domain

const GeomDomain *extendedDomain(bool useVertex = false, const GeomDomain &omega = GeomDomain()) const#

find extension of a side domain

inline virtual GeomDomain &ficticiousDomain(const GeomDomain &omega) const#

< find or create a ficticious domain of a side domain

Geometry *geometry() const#

get geometry, return geometry_p if not null else find the supporting geometry

set geometry pointer

inline virtual Vector<real_t> getNormal(const Point &x, OrientationType ort = _undefOrientationType, const GeomDomain &dom = GeomDomain()) const#

< return normal to a domain at a given point

bool hasParametrization() const#

true if parametrization allocated

return parametrization if allocated in Geometry, error if not

virtual bool include(const GeomDomain&) const#

true if the current domain includes a given domain (const)

virtual bool isInterface() const#

true if an interface

virtual bool isIntersection() const#

true if the domain is a intersection of domains (const)

virtual bool isSideDomain() const#

true if a side domain

virtual bool isSidesDomain() const#

true if it is a set of element sides (MeshDomain::isSidesOf_p!=nullptr)

inline bool isToSave()#

returns true if the domain is intended to be saved into a file

virtual bool isUnion() const#

true if the domain is an union of domains (const)

inline virtual const GeomDomain *largestDomain(std::vector<const GeomDomain*>) const#

return the largest domain including list of subdomains (forbidden here)

virtual real_t measure() const#

measure (length, surface or volume) of MeshDomain

compute the measure (lenght, surface or volume) of GeomDomain

update geometric domain info (measure, characteristic sizes, …)

inline const Mesh *mesh() const#

return mesh pointer (const)

virtual MeshDomain *meshDomain()#

access to child meshDomain

virtual const MeshDomain *meshDomain() const#

access to child MeshDomain (const)

virtual MeshDomainPartition *meshDomainPartition()#

access to meshDomainPartition pointer

virtual const MeshDomainPartition *meshDomainPartition() const#

access to meshDomainPartition pointer (const)

inline const string_t &name() const#

return domain name (const)

string_t nameWithoutSharp() const#

return domain name without sharp when there is one (const)

inline virtual std::pair<OrientationType, const GeomDomain*> normalOrientation() const#

< return current orientation of normal vectors

virtual number_t numberOfElements() const#

number of geometric elements of domain

inline GeomDomain &operator=(const GeomDomain &d)#

forbidden assign operator

virtual number_t order() const#

return order of element

const Parametrization &parametrization() const#

return parametrization if allocated in Geometry, error if not

return boundary parametrization if allocated in Geometry, error if not

virtual void print(std::ostream&) const#

print GeomDomain

inline virtual GeomDomain &removeElts(const GeomDomain &dom, const string_t &namedom = "") const#

< remove dom elements from current domain, creating new GeoDomain if different from current

inline virtual GeomDomain &removeElts(const std::set<GeomElement*> &elts, const string_t &namedom = "") const#

< remove elements from current domain, creating new GeoDomain if different from current

inline void rename(const string_t &na)#

rename domain

void saveColorsToFile(const string_t &filename) const#

export element colors to vtk file

utility to save element colors of a domain on a vtk file

void saveNormalsToFile(const string_t&, IOFormat iof = _vtk) const#

export normal to file

void saveNormalsToVtk(const string_t&) const#

export normal to vtk file

utility to save normals of a manifold domain on a vtk file

void setBoundaryParametrization(const Parametrization&)#

set boundary_parametrization (attached to geometry_p, replace previous one!)

attached boundary parametrization to domain geometry if exists, replace previous parametrization Note : copy of given parametrization

virtual void setColorFlag(bool) const#

set useColorFlag status

inline void setDescription(const string_t &desc)#

set domain description

virtual void setDomainId(number_t)#

set the DomainId of all elements of domain

void setGeometry(Geometry*)#

set geometry pointer

true if parametrization allocated

virtual void setMaterialId(number_t)#

set material id (>0) for all elements of domain

virtual void setNormalOrientation(OrientationType, const GeomDomain&) const#

set normal orientation of a meshdomain of dimension SpaceDim-1

void setParametrization(const Parametrization&)#

set parametrization (attached to geometry_p, replace previous one!)

attached parametrization to domain geometry if exists, replace previous parametrization Note : copy of given parametrization !

inline virtual GeomDomain &sidesDomain(const string_t &na = "") const#

find or create sides domain related to current one

inline virtual string_t sortedName() const#

return domain name where composite elements are sorted by name (const)

dimen_t spaceDim() const#

return the space dimension, say dim of points (const)

inline const GeomDomain *up() const#

return up_p pointer (const)

void updateParentOfSideElements()#

update parent sides info of a side domain (only for mesh domain)

Public Static Functions

static void clearGlobalVector()#

delete all domain objects

static const GeomDomain *findCompositeDomain(SetOperationType, const std::vector<const GeomDomain*>&)#

find an union/intersection composite domain by the domain pointers

static const GeomDomain *findDomain(const GeomDomain*)#

find a domain of mesh by its pointer

find a domain by its name (static function)

static const GeomDomain *findDomain(const string_t &na)#

find a domain by its name

static const GeomDomain *findMeshDomainComposite(SetOperationType, const std::vector<const GeomDomain*>&)#

find an union/intersection mesh domain by the domain pointers

static const GeomDomain *findUnionDomain(const GeomDomain*)#

find mesh domain corresponding to an union domain

static inline void printTheDomains(PrintStream &os)#

print all domains on os

static void printTheDomains(std::ostream&)#

print all domains

Public Static Attributes

static std::vector<const GeomDomain*> theDomains#

list of all existing domains

list of pointers of all geometric domains