CGCoordinates::Z Class Reference

Defines the non-averaged directions on which spatial coarse-graining is applied (the z-direction for Z); all other directions are averaged over homogeneously. More...

#include <Z.h>

+ Inheritance diagram for CGCoordinates::Z:

Public Member Functions

void write (std::ostream &os) const
 Writes the coordinates in human-readable form to an ostream. More...
 
Mdouble getDistanceSquared (const Vec3D &p) const
 Returns the square of the distance between the particle p and the current CGPoint, in the non-averaged directions. More...
 
void setZ (Mdouble x)
 Returns the position of the current CGPoint, in the non-averaged directions. More...
 
Mdouble getZ () const
 
Mdouble getINormal (const BaseInteraction &c, const Vec3D &normal) const
 For the Interaction between particles/walls P and I, this function returns the dot product between the normal vector of the interaction and the branch vector from the current CGPoint towards I. More...
 
Mdouble getPNormal (const BaseInteraction &c, const Vec3D &normal) const
 For the Interaction between particles/walls P and I, this function returns the dot product between the normal vector of the interaction and the branch vector from the current CGPoint towards P. More...
 
Mdouble getCNormal (const BaseInteraction &c, const Vec3D &normal) const
 For the Interaction between particles/walls P and I, this function returns the dot product between the normal vector of the interaction and the branch vector from the current CGPoint towards the contact point. More...
 
- Public Member Functions inherited from CGCoordinates::BaseCoordinates
virtual Mdouble getWeight ()
 

Static Public Member Functions

static void writeNames (std::ostream &os)
 Writes the coordinate names in human-readable form to an ostream. More...
 
static Mdouble getVolumeOfAveragedDimensions (const Vec3D &min, const Vec3D &max)
 returns the factor the CGFunction has to be divided by, due to integrating the variables over the averaged dimensions, 1.0 for XYZ. More...
 
static Mdouble getLength (const Vec3D &p)
 Returns the length of the input vector in the non-averaged directions. More...
 
static bool isResolvedIn (unsigned i)
 
static std::string getName ()
 
- Static Public Member Functions inherited from CGCoordinates::Base_X_Y_Z
static Mdouble getGaussPrefactor (Mdouble width, Mdouble cutoff)
 Computes the prefactor of the Gauss CGFunction, which is dependent on the number of non-averaged dimensions. More...
 
static Mdouble getGaussIntegralPrefactor (Mdouble distance, Mdouble width, Mdouble cutoff)
 Computes the prefactor of the Gauss line integral, which is dependent on the number of non-averaged dimensions. More...
 
static void normalisePolynomialCoefficients (std::vector< Mdouble > &coefficients, Mdouble cutoff)
 Normalises the coefficients of Polynomial CGFunction such that the integral over all non-averaged dimensions is unity. More...
 
static const unsigned countVariables ()
 
- Static Public Member Functions inherited from CGCoordinates::BaseCoordinates
static Mdouble getDomainVolume (const Vec3D &min, const Vec3D &max)
 

Protected Attributes

Mdouble z_
 

Detailed Description

Defines the non-averaged directions on which spatial coarse-graining is applied (the z-direction for Z); all other directions are averaged over homogeneously.

See XYZ for details.

Member Function Documentation

◆ getCNormal()

Mdouble Z::getCNormal ( const BaseInteraction c,
const Vec3D normal 
) const

For the Interaction between particles/walls P and I, this function returns the dot product between the normal vector of the interaction and the branch vector from the current CGPoint towards the contact point.

For all points S on the contact line from I to P, this is the maximum value for (S-R)*normal. This is the upper limit of integration along the contact line

92 {
93  return (c.getContactPoint().Z - z_) * normal.Z;
94 }
const Vec3D & getContactPoint() const
Gets constant reference to contact point (vector).
Definition: BaseInteraction.h:234
Mdouble z_
Definition: Z.h:120
Mdouble Z
Definition: Vector.h:66

References BaseInteraction::getContactPoint(), Vec3D::Z, and z_.

◆ getDistanceSquared()

Mdouble Z::getDistanceSquared ( const Vec3D p) const

Returns the square of the distance between the particle p and the current CGPoint, in the non-averaged directions.

55 {
56  return mathsFunc::square(p.Z - z_);
57 }
T square(const T val)
squares a number
Definition: ExtendedMath.h:106

References mathsFunc::square(), Vec3D::Z, and z_.

◆ getINormal()

Mdouble Z::getINormal ( const BaseInteraction c,
const Vec3D normal 
) const

For the Interaction between particles/walls P and I, this function returns the dot product between the normal vector of the interaction and the branch vector from the current CGPoint towards I.

For all points S on the contact line from I to P, this is the minimum value for (S-R)*normal. This is the lower limit of integration along the contact line

74 {
75  return (c.getI()->getPosition().Z - z_) * normal.Z;
76 }
const Vec3D & getPosition() const
Returns the position of this BaseInteractable.
Definition: BaseInteractable.h:218
BaseInteractable * getI()
Returns a pointer to the second object involved in the interaction (often a wall or a particle).
Definition: BaseInteraction.h:285

References BaseInteraction::getI(), BaseInteractable::getPosition(), Vec3D::Z, and z_.

◆ getLength()

Mdouble Z::getLength ( const Vec3D p)
static

Returns the length of the input vector in the non-averaged directions.

Parameters
[in]pvector whose length should be determined
Returns
length of the vector in the non-averaged directions
Todo:
65 {
66  return fabs(p.Z);
67 }

References Vec3D::Z.

◆ getName()

std::string Z::getName ( )
static
97 {
98  return "Z";
99 }

◆ getPNormal()

Mdouble Z::getPNormal ( const BaseInteraction c,
const Vec3D normal 
) const

For the Interaction between particles/walls P and I, this function returns the dot product between the normal vector of the interaction and the branch vector from the current CGPoint towards P.

For all points S on the contact line from I to P, this is the maximum value for (S-R)*normal. This is the upper limit of integration along the contact line

83 {
84  return (c.getP()->getPosition().Z - z_) * normal.Z;
85 }
BaseInteractable * getP()
Returns a pointer to first object involved in the interaction (normally a particle).
Definition: BaseInteraction.h:274

References BaseInteraction::getP(), BaseInteractable::getPosition(), Vec3D::Z, and z_.

◆ getVolumeOfAveragedDimensions()

Mdouble Z::getVolumeOfAveragedDimensions ( const Vec3D min,
const Vec3D max 
)
static

returns the factor the CGFunction has to be divided by, due to integrating the variables over the averaged dimensions, 1.0 for XYZ.

Todo:
Generalise to 2D
45 {
46  return (max.X - min.X) * (max.Y - min.Y);
47 }
Mdouble Y
Definition: Vector.h:66
Mdouble X
the vector components
Definition: Vector.h:66

References Vec3D::X, and Vec3D::Y.

◆ getZ()

Mdouble CGCoordinates::Z::getZ ( ) const
inline
88  { return z_; }

References z_.

◆ isResolvedIn()

static bool CGCoordinates::Z::isResolvedIn ( unsigned  i)
inlinestatic
111 {return i==2?true:false;}
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51

References constants::i.

◆ setZ()

void Z::setZ ( Mdouble  x)

Returns the position of the current CGPoint, in the non-averaged directions.

50 {
51  z_ = z;
52 }

References z_.

◆ write()

void Z::write ( std::ostream &  os) const

Writes the coordinates in human-readable form to an ostream.

38 {
39  os << z_ << ' ';
40 }

References z_.

◆ writeNames()

void Z::writeNames ( std::ostream &  os)
static

Writes the coordinate names in human-readable form to an ostream.

33 {
34  os << "z ";
35 }

Member Data Documentation

◆ z_

Mdouble CGCoordinates::Z::z_
protected

The z-position of the current CGPoint.

Referenced by getCNormal(), getDistanceSquared(), getINormal(), getPNormal(), getZ(), setZ(), and write().


The documentation for this class was generated from the following files: