Class xlifepp::GeomDomain#

class GeomDomain#

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()#

return reference to partition data

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 std::list<GeomElement*> elementsCloseTo(Point &pt) const#

< locate elements close to a given point

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)

inline virtual GeomElement *locate(const Point&, bool silent = false) const#

< locate element containing a given point

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)

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 GeomElement *nearest(Point &pt, real_t&) const#

< locate nearest element of a given point

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

void partition(Parameter &p1)#

create partition of domain with various parameters

const PartitionData &partitionData() const#

return partitionData_ pointer

PartitionData *partitionDataP()#

real partition builder

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