Loading...
Searching...
No Matches
Common operations 3D vectors.

Implementation is in header file for better optimisaition. More...

Functions

static void forcefields::PotentialBase::divide (double v[], double const divisor)
 Divide vector.
static double * forcefields::PotentialBase::crossProduct (const double v[], const double w[], double e[])
 Cross product.
static double forcefields::PotentialBase::dotProduct (double const v[], double const w[])
 Dot product.
static void forcefields::PotentialBase::multiply (double v[], double const factor)
 Multiply vector.
static double forcefields::PotentialBase::norm (double const v[])
 Norm of 3D vector.
static void forcefields::PotentialBase::normalise (double v[])
 Normalise 3D vector \( \frac{\mathbf v}{ |\mathbf v|} \).

Detailed Description

Implementation is in header file for better optimisaition.

Function Documentation

◆ crossProduct()

double * forcefields::PotentialBase::crossProduct ( const double v[],
const double w[],
double e[] )
inlinestaticprotected

Cross product.

\( \mathbf e=\mathbf v \times \mathbf w \)

Parameters
[in]v3D vector.
[in]w3D vector.
[out]eResult.

Definition at line 192 of file potential_base.hpp.

193 {
194 e[0] = v[1] * w[2] - v[2] * w[1];
195 e[1] = v[2] * w[0] - v[0] * w[2];
196 e[2] = v[0] * w[1] - v[1] * w[0];
197 return e;
198}

◆ divide()

void forcefields::PotentialBase::divide ( double v[],
double const divisor )
inlinestaticprotected

Divide vector.

Parameters
[in,out]vThree-dimension vector to divide.
[in]divisorDivide v by divisor.

Definition at line 204 of file potential_base.hpp.

204 {
205 v[0] /= divisor;
206 v[1] /= divisor;
207 v[2] /= divisor;
208}

◆ dotProduct()

double forcefields::PotentialBase::dotProduct ( double const v[],
double const w[] )
inlinestaticprotected

Dot product.

\( \mathbf v . \mathbf w \)

Parameters
[in]v3D vector.
[in]w3D vector.
Returns
Dot product.

Definition at line 216 of file potential_base.hpp.

217 {
218 return v[0] * w[0] + v[1] * w[1] + v[2] * w[2];
219}

◆ multiply()

void forcefields::PotentialBase::multiply ( double v[],
double const factor )
inlinestaticprotected

Multiply vector.

Parameters
[in,out]vThree-dimension vector to multiply.
[in]factorMultiply v by factor.

Definition at line 225 of file potential_base.hpp.

225 {
226 v[0] *= factor;
227 v[1] *= factor;
228 v[2] *= factor;
229}

◆ norm()

double forcefields::PotentialBase::norm ( double const v[])
inlinestaticprotected

Norm of 3D vector.

\( |\mathbf v| \)

Parameters
[in]v3D vector.
Returns
Norm.

Definition at line 236 of file potential_base.hpp.

236 {
237 return sqrt(dotProduct(v, v));
238}
static double dotProduct(double const v[], double const w[])
Dot product.

◆ normalise()

void forcefields::PotentialBase::normalise ( double v[])
inlinestaticprotected

Normalise 3D vector \( \frac{\mathbf v}{ |\mathbf v|} \).

Parameters
[in,out]v3D vector to normalise.

Definition at line 244 of file potential_base.hpp.

244 {
245 double const n = norm(v);
246 divide(v, n);
247}
static double norm(double const v[])
Norm of 3D vector.
static void divide(double v[], double const divisor)
Divide vector.