chombo-discharge
Loading...
Searching...
No Matches
Namespaces | Enumerations | Functions | Variables
CD_MirrorDeposition.H File Reference

Namespace containing the geometry used by mirrored cut-cell deposition. More...

#include <REAL.H>
#include <RealVect.H>
#include <SPACE.H>
#include <CD_NamespaceHeader.H>
#include <CD_NamespaceFooter.H>
#include <CD_MirrorDepositionImplem.H>
Include dependency graph for CD_MirrorDeposition.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MirrorDeposition
 Geometry for mirrored cut-cell deposition, i.e. the even extension of the density about an embedded boundary.
 

Enumerations

enum class  MirrorDeposition::Status { MirrorDeposition::None = 0 , MirrorDeposition::Fitted = 1 , MirrorDeposition::Planar = 2 }
 What a band cell's surface data is good for. More...
 
enum class  MirrorDeposition::Refusal { MirrorDeposition::None , MirrorDeposition::SmallDenominator , MirrorDeposition::LargeJacobian , MirrorDeposition::NonPositiveJacobian }
 Why reflect() refused to trust its Jacobian. More...
 

Functions

void MirrorDeposition::liftShapeOperator (const RealVect(&a_tangents)[numTangents], const Real(&a_S)[numTangents][numTangents], Real(&a_shape)[numShapeComp]) noexcept
 Lift a shape operator from the tangent frame into world coordinates.
 
int MirrorDeposition::shapeIndex (const int a_i, const int a_j) noexcept
 Index into the stored upper triangle of a symmetric SpaceDim x SpaceDim tensor.
 
Real MirrorDeposition::shapeEntry (const Real *a_shape, const int a_i, const int a_j) noexcept
 Read one entry of a world-frame shape operator stored as an upper triangle.
 
RealVect MirrorDeposition::applyShapeOperator (const Real *a_shape, const RealVect &a_vec) noexcept
 Apply a world-frame shape operator to a vector.
 
Real MirrorDeposition::meanCurvatureTimesTwo (const Real *a_shape) noexcept
 Twice the mean curvature, i.e. the first invariant of the shape operator.
 
Real MirrorDeposition::gaussianCurvature (const Real *a_shape) noexcept
 Gaussian curvature, i.e. the second invariant of the shape operator.
 
Real MirrorDeposition::jacobian (const Real a_twoH, const Real a_K, const Real a_d, Real &a_denominator) noexcept
 The exact area/volume Jacobian of the reflection across a curved surface.
 
bool MirrorDeposition::reflect (const RealVect &a_pos, const Real *a_surfaceData, const Real a_maxJacobian, const Real a_minDenominator, RealVect &a_image, Real &a_jacobian, Real &a_signedDistance, Refusal &a_refusal) noexcept
 Reflect a position across the quadratic surface patch stored for its cell, and weight the image.
 

Variables

constexpr int MirrorDeposition::numTangents = SpaceDim - 1
 Number of tangent directions on the surface. One in 2-D, two in 3-D.
 
constexpr int MirrorDeposition::numShapeComp = (SpaceDim * (SpaceDim + 1)) / 2
 Number of independent entries in a symmetric SpaceDim x SpaceDim tensor. Three in 2-D, six in 3-D.
 
constexpr int MirrorDeposition::compStatus = 0
 Component holding the band cell's status. See MirrorDeposition::Status.
 
constexpr int MirrorDeposition::compCentroid = 1
 First of the SpaceDim components holding the boundary centroid, as a PHYSICAL position.
 
constexpr int MirrorDeposition::compNormal = compCentroid + SpaceDim
 First of the SpaceDim components holding the unit normal, pointing INTO the fluid.
 
constexpr int MirrorDeposition::compShape = compNormal + SpaceDim
 First of the numShapeComp components holding the world-frame shape operator's upper triangle.
 
constexpr int MirrorDeposition::numComp = compShape + numShapeComp
 Total number of components in the surface-data holder. Eight in 2-D, thirteen in 3-D.
 

Detailed Description

Namespace containing the geometry used by mirrored cut-cell deposition.

Author
Robert Marskar