Definition of the computational domain in 3D as an outer (boundary) surface, and a set of surfaces of polyhedra denoting internal holes. More...
#include <ptems/domaindefinition.hpp>
Classes | |
| class | Facet |
| Defines a facet of a surface of the domain. More... | |
| class | SurfaceDefinition |
| Defines a surface of a polyhedra in 3D as a list of vertices and linear facets. More... | |
Public Member Functions | |
| DomainDefinition3D (SurfaceDefinition &&surface) | |
| Create a computational domain by the surface of a polyhedra. More... | |
| DomainDefinition3D (const SurfaceDefinition &surface) | |
| Create a computational domain by the surface of a polyhedra. More... | |
| DomainDefinition3D (Vector< 3 > &&interior, std::vector< Vector< 3 >> &&points, std::vector< Facet > &&facets) | |
| Create a computational domain by the surface of a polyhedra, where a surface is defined as list of vertices and linear facets. More... | |
| DomainDefinition3D (const Vector< 3 > &interior, const std::vector< Vector< 3 >> &points, const std::vector< Facet > &facets) | |
| Create a computational domain by the surface of a polyhedra, where a surface is defined as list of vertices and linear facets. More... | |
| template<typename ItVerts , typename ItFacets > | |
| DomainDefinition3D (const Vector< 3 > &interior, ItVerts beginVerts, ItVerts endVerts, ItFacets beginFacets, ItFacets endFacets) | |
| Create a computational domain by the surface of a polyhedra, where a surface is defined as list of vertices and linear facets. More... | |
| void | AddHole (SurfaceDefinition &&surface) |
| Adds a hole into the domain. More... | |
| void | AddHole (const SurfaceDefinition &surface) |
| Adds a hole into the domain. More... | |
| void | AddHole (Vector< 3 > &&interior, std::vector< Vector< 3 >> &&points, std::vector< Facet > &&facets) |
| Adds a hole into the domain defined by a surface. More... | |
| void | AddHole (const Vector< 3 > &interior, const std::vector< Vector< 3 >> &points, const std::vector< Facet > &facets) |
| Adds a hole into the domain defined by a surface. More... | |
| template<typename ItVerts , typename ItFacets > | |
| void | AddHole (const Vector< 3 > &interior, ItVerts beginVerts, ItVerts endVerts, ItFacets beginFacets, ItFacets endFacets) |
| Adds a hole into the domain defined by a surface. More... | |
| bool | IsAligned () const |
| Returns whether the domain boundary surface facets are aligned with the axis. More... | |
| std::size_t | MinElementsX () const |
| Returns the minimum number of elements (or the multiplier) in the x-coordinate for uniform refinement to ensure that the mesh aligns with the boundary. More... | |
| std::size_t | MinElementsY () const |
| Returns the minimum number of elements (or the multiplier) in the y-coordinate for uniform refinement to ensure that the mesh aligns with the boundary. More... | |
| std::size_t | MinElementsZ () const |
| Returns the minimum number of elements (or the multiplier) in the z-coordinate for uniform refinement to ensure that the mesh aligns with the boundary. More... | |
| BBox< 3 > | BoundingBox () const |
| Gets the bounding box of the domain. More... | |
| bool | IsValid () const |
| Checks if the domain is valid (contains at least three points in the boundary) More... | |
| operator bool () const | |
| Checks if the domain is valid (contains at least three points in the boundary) More... | |
| const SurfaceDefinition & | Boundary () const |
| Gets the surface defining the boundary. More... | |
| const std::vector< SurfaceDefinition > & | Holes () const |
| Gets the list of holes in the domain. More... | |
Static Public Member Functions | |
| static DomainDefinition3D | Cube (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax) |
| Create a cuboid computational domain with the specified dimensions. More... | |
| static DomainDefinition3D | Cube (const Vector< 3 > &p1, const Vector< 3 > &p2) |
| Create a cuboid computational domain with the specified opposite corners. More... | |
| static DomainDefinition3D | Cube (double min, double max) |
| Create a cube computational domain with the specified dimensions. More... | |
| static DomainDefinition3D | Cube () |
| Create a unit cube \( (0,1)^3 \) computational domain. More... | |
| static DomainDefinition3D | Obstacle (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax, double xMinObstacle, double xMaxObstacle, double yMinObstacle, double yMaxObstacle, double zMinObstacle, double zMaxObstacle) |
| Create a cuboid computational domain with the specified dimensions, containing a cuboid obstacle with the specified dimensions. More... | |
| static DomainDefinition3D | Obstacle (const Vector< 3 > &p1, const Vector< 3 > &p2, const Vector< 3 > &obs1, const Vector< 3 > &obs2) |
| Create a cuboid computational domain with the opposite corners for the domain and obstacle. More... | |
| static DomainDefinition3D | Obstacle (double min, double max, double minObstacle, double maxObstacle) |
| Create a cube computational domain with the specified dimensions, containing a cube obstacle with the specified dimensions. More... | |
| static DomainDefinition3D | ExtrudedLShape (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax, double xCentre, double yCentre, LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions. More... | |
| static DomainDefinition3D | ExtrudedLShape (const Vector< 3 > &p1, const Vector< 3 > &p2, const Vector< 2 > ¢re, LShapeDomain shape=LShapeDomain::MinusSE) |
| Create an L-shape computational domain, extruded in the z direction, within the bounding box denoted by the opposite corners. More... | |
| static DomainDefinition3D | ExtrudedLShape (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax, LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane. More... | |
| static DomainDefinition3D | ExtrudedLShape (const Vector< 3 > &p1, const Vector< 3 > &p2, LShapeDomain shape=LShapeDomain::MinusSE) |
| Create an L-shape computational domain, extruded in the z direction, within the bounding box denoted by the opposite corners with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane. More... | |
| static DomainDefinition3D | ExtrudedLShape (double min, double max, double zMin, double zMax, double centre, LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions. More... | |
| static DomainDefinition3D | ExtrudedLShape (double min, double max, double zMin, double zMax, LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane. More... | |
| static DomainDefinition3D | ExtrudedLShape (double min, double max, double centre, LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions. More... | |
| static DomainDefinition3D | ExtrudedLShape (double min, double max, LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane. More... | |
| static DomainDefinition3D | ExtrudedLShape (LShapeDomain shape=LShapeDomain::MinusSE) |
| Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, with limits [-1,1] for all coordinate directions and centre point (re-entrant corner) at (0,0). More... | |
| static DomainDefinition3D | Fichera (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax, double xCentre, double yCentre, double zCentre) |
| Creates the Fichera corner \( ((xMin,xMax)\times(yMin,yMax)\times(zMin,zMax))\setminus([xCentre,xMax)\times[yCentre,yMax)\times[zCentre,zMax)) \),. More... | |
| static DomainDefinition3D | Fichera (const Vector< 3 > &p1, const Vector< 3 > &p2, const Vector< 3 > ¢re) |
| Create a Fichera corner computational domain, within the bounding box denoted by the opposite corners. More... | |
| static DomainDefinition3D | Fichera (double xMin, double xMax, double yMin, double yMax, double zMin, double zMax) |
| Creates the Fichera corner \( ((xMin,xMax)\times(yMin,yMax)\times(zMin,zMax))\setminus([xCentre,xMax)\times[yCentre,yMax)\times[zCentre,zMax)) \), where the centre (re-entrant) corner \( (xCentre,yCentre,zCentre) \) is defined as the midpoint of the defined limits. More... | |
| static DomainDefinition3D | Fichera (const Vector< 3 > &p1, const Vector< 3 > &p2) |
| Create a Fichera corner computational domain, within the bounding box denoted by the opposite corners with centre point (re-entrant corner) of the Fichera at the midpoint of the xy plane. More... | |
| static DomainDefinition3D | Fichera (double min, double max, double centre) |
| Creates the Fichera corner \( (min,max)^3 \setminus [centre,max]^3 \). More... | |
| static DomainDefinition3D | Fichera (double min, double max) |
| Creates the Fichera corner \( (min,max)^3 \setminus [(min+max)/2),max]^3 \). More... | |
| static DomainDefinition3D | Fichera () |
| Creates the Fichera corner \( (-1,1)^3 \setminus [0,1]^3 \). More... | |
Definition of the computational domain in 3D as an outer (boundary) surface, and a set of surfaces of polyhedra denoting internal holes.
A surface is defined as a set of linear facets.
|
inline |
Create a computational domain by the surface of a polyhedra.
| surface | The polyhedra surface defining the domain. |
|
inline |
Create a computational domain by the surface of a polyhedra.
| surface | The polyhedra surface defining the domain. |
|
inline |
Create a computational domain by the surface of a polyhedra, where a surface is defined as list of vertices and linear facets.
| interior | A point in the interior of the polyhedra defined by the surface |
| points | List of the vertices defining the surface. |
| facets | List of facets defining the surface, where each facet is a list of indices to the vertices. |
| std::invalid_argument | If a facet vertex index is greater or equal to the number of vertices. |
| std::invalid_argument | If the number of facets or vertices is less than 4. |
|
inline |
Create a computational domain by the surface of a polyhedra, where a surface is defined as list of vertices and linear facets.
| interior | A point in the interior of the polyhedra defined by the surface |
| points | List of the vertices defining the surface. |
| facets | List of facets defining the surface, where each facet is a list of indices to the vertices. |
| std::invalid_argument | If a facet vertex index is greater or equal to the number of vertices. |
| std::invalid_argument | If the number of facets or vertices is less than 4. |
|
inline |
Create a computational domain by the surface of a polyhedra, where a surface is defined as list of vertices and linear facets.
| interior | A point in the interior of the polyhedra defined by the surface |
| beginVerts | Start iterator to the list of the vertices defining the surface. |
| endVerts | End iterator to the list of the vertices defining the surface. |
| beginFacets | Start iterator to list of facets defining the surface, where each facet is a list of indices to the vertices. |
| endFacets | End iterator to list of facets defining the surface, where each facet is a list of indices to the vertices. |
| std::invalid_argument | If a facet vertex index is greater or equal to the number of vertices. |
| std::invalid_argument | If the number of facets or vertices is less than 4. |
|
inline |
Adds a hole into the domain.
| surface | The polyhedra surface defining the hole. |
|
inline |
Adds a hole into the domain defined by a surface.
| interior | A point in the interior of the polyhedra defined by the surface |
| points | List of the vertices defining the surface. |
| facets | List of facets defining the surface, where each facet is a list of indices to the vertices. |
| std::invalid_argument | If a facet vertex index is greater or equal to the number of vertices. |
| std::invalid_argument | If the number of facets or vertices is less than 4. |
|
inline |
Adds a hole into the domain defined by a surface.
| interior | A point in the interior of the polyhedra defined by the surface |
| beginVerts | Start iterator to the list of the vertices defining the surface. |
| endVerts | End iterator to the list of the vertices defining the surface. |
| beginFacets | Start iterator to list of facets defining the surface, where each facet is a list of indices to the vertices. |
| endFacets | End iterator to list of facets defining the surface, where each facet is a list of indices to the vertices. |
| std::invalid_argument | If a facet vertex index is greater or equal to the number of vertices. |
| std::invalid_argument | If the number of facets or vertices is less than 4. |
|
inline |
Adds a hole into the domain.
| surface | The polyhedra surface defining the hole. |
|
inline |
Adds a hole into the domain defined by a surface.
| interior | A point in the interior of the polyhedra defined by the surface |
| points | List of the vertices defining the surface. |
| facets | List of facets defining the surface, where each facet is a list of indices to the vertices. |
| std::invalid_argument | If a facet vertex index is greater or equal to the number of vertices. |
| std::invalid_argument | If the number of facets or vertices is less than 4. |
|
inline |
Gets the surface defining the boundary.
| BBox<3> ptems::DomainDefinition3D::BoundingBox | ( | ) | const |
Gets the bounding box of the domain.
|
inlinestatic |
Create a unit cube \( (0,1)^3 \) computational domain.
|
inlinestatic |
Create a cuboid computational domain with the specified opposite corners.
| p1 | Coordinates of the first corner |
| p2 | Coordinates of the second, opposite, corner |
| std::invalid_argument | If the difference between the two points, in the X, Y, or Z coordinates, is zero. |
|
inlinestatic |
Create a cube computational domain with the specified dimensions.
| min | The lower limit of the cube in all coordinate directions. |
| max | The upper limit of the cube in all coordinate directions. |
| std::invalid_argument | If the lower limit (min) is greater (or equal) to the upper limit (max) |
|
static |
Create a cuboid computational domain with the specified dimensions.
| xMin | The lower limit of the cuboid in the x coordinate direction. |
| xMax | The upper limit of the cuboid in the x coordinate direction. |
| yMin | The lower limit of the cuboid in the y coordinate direction. |
| yMax | The upper limit of the cuboid in the y coordinate direction. |
| zMin | The lower limit of the cuboid in the z coordinate direction. |
| zMax | The upper limit of the cuboid in the z coordinate direction. |
| std::invalid_argument | If the lower limit in any coordinate direction is greater (or equal) to the upper limit |
|
inlinestatic |
Create an L-shape computational domain, extruded in the z direction, within the bounding box denoted by the opposite corners.
The L-shape has one of the following four layouts:
| p1 | Coordinates of the first corner of the bounding box |
| p2 | Coordinates of the second, opposite, corner of the bounding box |
| centre | Coordinates of the centre (re-entrant) corner in the L-shape |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the difference between the two coordinates of the outer domain, in the X, Y, or Z coordinates, is zero. |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Create an L-shape computational domain, extruded in the z direction, within the bounding box denoted by the opposite corners with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane.
| p1 | Coordinates of the first corner of the bounding box |
| p2 | Coordinates of the second, opposite, corner of the bounding box |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the difference between the two coordinates of the outer domain, in the X, Y, or Z coordinates, is zero. |
|
inlinestatic |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions.
The L-shape has one of the following four layouts:
| min | The lower limit of the L-shape and extrusion in all coordinate directions. |
| max | The upper limit of the L-shape and extrusion in all coordinate directions. |
| centre | The x and y coordinate of the centre (re-entrant) corner in the L-shape |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions.
The L-shape has one of the following four layouts:
| min | The lower limit of the L-shape in the x and y coordinate directions. |
| max | The upper limit of the L-shape in the x and y coordinate directions. |
| zMin | The lower limit of the extrusion in the z coordinate direction. |
| zMax | The upper limit of the extrusion in the z coordinate direction. |
| centre | The x and y coordinate of the centre (re-entrant) corner in the L-shape |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane.
The L-shape has one of the following four layouts:
| min | The lower limit of the L-shape in the x and y coordinate directions. |
| max | The upper limit of the L-shape in the x and y coordinate directions. |
| zMin | The lower limit of the extrusion in the z coordinate direction. |
| zMax | The upper limit of the extrusion in the z coordinate direction. |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
|
inlinestatic |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane.
The L-shape has one of the following four layouts:
| min | The lower limit of the L-shape and extrusion in all coordinate directions. |
| max | The upper limit of the L-shape and extrusion in all coordinate directions. |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
|
static |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions.
The L-shape has one of the following four layouts:
| xMin | The lower limit of the L-shape in the x coordinate direction. |
| xMax | The upper limit of the L-shape in the x coordinate direction. |
| yMin | The lower limit of the L-shape in the y coordinate direction. |
| yMax | The upper limit of the L-shape in the y coordinate direction. |
| zMin | The lower limit of the extrusion in the z coordinate direction. |
| zMax | The upper limit of the extrusion in the z coordinate direction. |
| xCentre | The x coordinate of the centre (re-entrant) corner in the L-shape |
| yCentre | The y coordinate of the centre (re-entrant) corner in the L-shape |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, defined by the specified dimensions with centre point (re-entrant corner) of the L-shape at the midpoint of the xy plane.
The L-shape has one of the following four layouts:
| xMin | The lower limit of the L-shape in the x coordinate direction. |
| xMax | The upper limit of the L-shape in the x coordinate direction. |
| yMin | The lower limit of the L-shape in the y coordinate direction. |
| yMax | The upper limit of the L-shape in the y coordinate direction. |
| zMin | The lower limit of the extrusion in the z coordinate direction. |
| zMax | The upper limit of the extrusion in the z coordinate direction. |
| shape | Which L-shape domain to create (default = MinusSE) |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Creates an L-shape computational domain (in xy plane), extruded in the the z-direction, with limits [-1,1] for all coordinate directions and centre point (re-entrant corner) at (0,0).
The L-shape has one of the following four layouts:
| shape | Which L-shape domain to create (default = MinusSE) |
|
inlinestatic |
Creates the Fichera corner \( (-1,1)^3 \setminus [0,1]^3 \).
| min | The lower limit of the Fichera corner in all coordinate directions. |
| max | The upper limit of the Fichera corner in all coordinate directions. |
|
inlinestatic |
Create a Fichera corner computational domain, within the bounding box denoted by the opposite corners with centre point (re-entrant corner) of the Fichera at the midpoint of the xy plane.
| p1 | Coordinates of the first corner of the bounding box |
| p2 | Coordinates of the second, opposite, corner of the bounding box |
| std::invalid_argument | If the difference between the two coordinates of the outer domain, in the X, Y, or Z coordinates, is zero. |
|
inlinestatic |
Create a Fichera corner computational domain, within the bounding box denoted by the opposite corners.
| p1 | Coordinates of the first corner of the bounding box |
| p2 | Coordinates of the second, opposite, corner of the bounding box |
| centre | Coordinates of the centre (re-entrant) corner in the Fichera corner |
| std::invalid_argument | If the difference between the two coordinates of the outer domain, in the X, Y, or Z coordinates, is zero. |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Creates the Fichera corner \( (min,max)^3 \setminus [(min+max)/2),max]^3 \).
| min | The lower limit of the Fichera corner in all coordinate directions. |
| max | The upper limit of the Fichera corner in all coordinate directions. |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
|
inlinestatic |
Creates the Fichera corner \( (min,max)^3 \setminus [centre,max]^3 \).
| min | The lower limit of the Fichera corner in all coordinate directions. |
| max | The upper limit of the Fichera corner in all coordinate directions. |
| centre | The x,y,z coordinates of the centre (re-entrant) corner in the Fichera corner |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inlinestatic |
Creates the Fichera corner \( ((xMin,xMax)\times(yMin,yMax)\times(zMin,zMax))\setminus([xCentre,xMax)\times[yCentre,yMax)\times[zCentre,zMax)) \), where the centre (re-entrant) corner \( (xCentre,yCentre,zCentre) \) is defined as the midpoint of the defined limits.
| xMin | The lower limit of the Fichera corner in the x coordinate direction. |
| xMax | The upper limit of the Fichera corner in the x coordinate direction. |
| yMin | The lower limit of the Fichera corner in the y coordinate direction. |
| yMax | The upper limit of the Fichera corner in the y coordinate direction. |
| zMin | The lower limit of the Fichera corner in the z coordinate direction. |
| zMax | The upper limit of the Fichera corner in the z coordinate direction. |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
|
static |
Creates the Fichera corner \( ((xMin,xMax)\times(yMin,yMax)\times(zMin,zMax))\setminus([xCentre,xMax)\times[yCentre,yMax)\times[zCentre,zMax)) \),.
| xMin | The lower limit of the Fichera corner in the x coordinate direction. |
| xMax | The upper limit of the Fichera corner in the x coordinate direction. |
| yMin | The lower limit of the Fichera corner in the y coordinate direction. |
| yMax | The upper limit of the Fichera corner in the y coordinate direction. |
| zMin | The lower limit of the Fichera corner in the z coordinate direction. |
| zMax | The upper limit of the Fichera corner in the z coordinate direction. |
| xCentre | The x coordinate of the centre (re-entrant) corner in the Fichera corner |
| yCentre | The y coordinate of the centre (re-entrant) corner in the Fichera corner |
| zCentre | The z coordinate of the centre (re-entrant) corner in the Fichera corner |
| std::invalid_argument | If the lower limit of the domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the centre (re-entrant) corner is not contained within the domain limits. |
|
inline |
Gets the list of holes in the domain.
| bool ptems::DomainDefinition3D::IsAligned | ( | ) | const |
Returns whether the domain boundary surface facets are aligned with the axis.
|
inline |
Checks if the domain is valid (contains at least three points in the boundary)
| std::size_t ptems::DomainDefinition3D::MinElementsX | ( | ) | const |
Returns the minimum number of elements (or the multiplier) in the x-coordinate for uniform refinement to ensure that the mesh aligns with the boundary.
| std::size_t ptems::DomainDefinition3D::MinElementsY | ( | ) | const |
Returns the minimum number of elements (or the multiplier) in the y-coordinate for uniform refinement to ensure that the mesh aligns with the boundary.
| std::size_t ptems::DomainDefinition3D::MinElementsZ | ( | ) | const |
Returns the minimum number of elements (or the multiplier) in the z-coordinate for uniform refinement to ensure that the mesh aligns with the boundary.
|
inlinestatic |
Create a cuboid computational domain with the opposite corners for the domain and obstacle.
| p1 | Coordinates of the first corner of the outer domain |
| p2 | Coordinates of the second, opposite, corner of the outer domain |
| obs1 | Coordinates of the first corner of the obstacle |
| obs2 | Coordinates of the second, opposite, corner of the obstacle |
| std::invalid_argument | If the difference between the two coordinates of the outer domain, in the X, Y, or Z coordinates, is zero. |
| std::invalid_argument | If the difference between the two coordinates of the obstacle, in the X, Y, or Z coordinates, is zero. |
| std::invalid_argument | If the obstacle is not completely contained within the outer domain |
|
inlinestatic |
Create a cube computational domain with the specified dimensions, containing a cube obstacle with the specified dimensions.
| min | The lower limit of the cube in all coordinate directions. |
| max | The upper limit of the cube in all coordinate directions. |
| minObstacle | The lower limit of the cube obstacle in all coordinate directions. |
| maxObstacle | The upper limit of the cube obstacle in all coordinate directions. |
| std::invalid_argument | If the lower limit (min) is greater (or equal) to the upper limit (max) |
| std::invalid_argument | If the lower limit of the obstacle (minObstacle) is greater (or equal) to the upper limit of the obstacle (maxObstacle) |
| std::invalid_argument | If the obstacle is not completely contained within the outer domain |
|
static |
Create a cuboid computational domain with the specified dimensions, containing a cuboid obstacle with the specified dimensions.
| xMin | The lower limit of the cuboid in the x coordinate direction. |
| xMax | The upper limit of the cuboid in the x coordinate direction. |
| yMin | The lower limit of the cuboid in the y coordinate direction. |
| yMax | The upper limit of the cuboid in the y coordinate direction. |
| zMin | The lower limit of the cuboid in the z coordinate direction. |
| zMax | The upper limit of the cuboid in the z coordinate direction. |
| xMinObstacle | The lower limit of the cuboid obstacle in the x coordinate direction. |
| xMaxObstacle | The upper limit of the cuboid obstacle in the x coordinate direction. |
| yMinObstacle | The lower limit of the cuboid obstacle in the y coordinate direction. |
| yMaxObstacle | The upper limit of the cuboid obstacle in the y coordinate direction. |
| zMinObstacle | The lower limit of the cuboid obstacle in the z coordinate direction. |
| zMaxObstacle | The upper limit of the cuboid obstacle in the z coordinate direction. |
| std::invalid_argument | If the lower limit of the outer domain in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the lower limit of the obstacle in any coordinate direction is greater (or equal) to the upper limit |
| std::invalid_argument | If the obstacle is not completely contained within the outer domain |
|
inlineexplicit |
Checks if the domain is valid (contains at least three points in the boundary)