OpenLB 1.7
|
This class converts Cartesian coordinates of point x to spherical coordinates wrote into output field (output[0] = radius, output[1] = phi, output[2] = theta). More...
#include <frameChangeF3D.h>
Public Member Functions | |
CartesianToSpherical3D (std::vector< T > cartesianOrigin, std::vector< T > axisDirection) | |
bool | operator() (T output[], const S x[]) override |
operator writes shperical coordinates of Cartesian point x into output field, output[0] = radius ( >= 0), output[1] = phi (in [0, 2Pi)), output[2] = theta (in [0, Pi]) | |
Public Member Functions inherited from olb::AnalyticalF< D, T, S > | |
AnalyticalF< D, T, S > & | operator- (AnalyticalF< D, T, S > &rhs) |
AnalyticalF< D, T, S > & | operator+ (AnalyticalF< D, T, S > &rhs) |
AnalyticalF< D, T, S > & | operator* (AnalyticalF< D, T, S > &rhs) |
AnalyticalF< D, T, S > & | operator/ (AnalyticalF< D, T, S > &rhs) |
Public Member Functions inherited from olb::GenericF< T, S > | |
virtual | ~GenericF ()=default |
int | getSourceDim () const |
read only access to member variable _m | |
int | getTargetDim () const |
read only access to member variable _n | |
std::string & | getName () |
read and write access to name | |
std::string const & | getName () const |
read only access to name | |
bool | operator() (T output[]) |
wrapper that call the pure virtual operator() (T output[], const S input[]) from above | |
bool | operator() (T output[], S input0) |
bool | operator() (T output[], S input0, S input1) |
bool | operator() (T output[], S input0, S input1, S input2) |
bool | operator() (T output[], S input0, S input1, S input2, S input3) |
Protected Attributes | |
std::vector< T > | _cartesianOrigin |
origin of the Cartesian coordinate system | |
std::vector< T > | _axisDirection |
direction of the axis along which the spherical coordinates are calculated | |
Additional Inherited Members | |
Public Types inherited from olb::AnalyticalF< D, T, S > | |
using | identity_functor_type = AnalyticalIdentity<D,T,S> |
Public Types inherited from olb::GenericF< T, S > | |
using | targetType = T |
using | sourceType = S |
Public Attributes inherited from olb::GenericF< T, S > | |
std::shared_ptr< GenericF< T, S > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
Static Public Attributes inherited from olb::AnalyticalF< D, T, S > | |
static constexpr unsigned | dim = D |
Protected Member Functions inherited from olb::AnalyticalF< D, T, S > | |
AnalyticalF (int n) | |
Protected Member Functions inherited from olb::GenericF< T, S > | |
GenericF (int targetDim, int sourceDim) | |
This class converts Cartesian coordinates of point x to spherical coordinates wrote into output field (output[0] = radius, output[1] = phi, output[2] = theta).
Initial situation for the spherical coordinate system is that angle phi lies in x-y-plane and theta in x-z-plane. The z axis is the orientation for the mathematical positive sense of phi.
Definition at line 472 of file frameChangeF3D.h.
olb::CartesianToSpherical3D< T, S >::CartesianToSpherical3D | ( | std::vector< T > | cartesianOrigin, |
std::vector< T > | axisDirection ) |
Definition at line 1089 of file frameChangeF3D.hh.
References olb::GenericF< T, S >::getName().
|
overridevirtual |
operator writes shperical coordinates of Cartesian point x into output field, output[0] = radius ( >= 0), output[1] = phi (in [0, 2Pi)), output[2] = theta (in [0, Pi])
Implements olb::GenericF< T, S >.
Definition at line 1101 of file frameChangeF3D.hh.
References olb::util::acos(), olb::crossProduct3D(), olb::util::fromVector3(), olb::util::nearZero(), olb::normalize(), and olb::util::sqrt().
|
protected |
direction of the axis along which the spherical coordinates are calculated
Definition at line 477 of file frameChangeF3D.h.
|
protected |
origin of the Cartesian coordinate system
Definition at line 475 of file frameChangeF3D.h.