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)