Open Qmin  0.8.0
GPU-accelerated Q-tensor-based liquid crystal simulations
Public Member Functions | Private Member Functions | Static Private Member Functions | List of all members
NISymmetricEigensolver3x3 Class Reference

#include <symmetric3x3Eigensolver.h>

Public Member Functions

HOSTDEVICE void operator() (scalar a00, scalar a01, scalar a02, scalar a11, scalar a12, scalar a22, std::array< scalar, 3 > &eval, std::array< std::array< scalar, 3 >, 3 > &evec) const
 

Private Member Functions

HOSTDEVICE void ComputeOrthogonalComplement (std::array< scalar, 3 > const &W, std::array< scalar, 3 > &U, std::array< scalar, 3 > &V) const
 
HOSTDEVICE void ComputeEigenvector0 (scalar a00, scalar a01, scalar a02, scalar a11, scalar a12, scalar a22, scalar eval0, std::array< scalar, 3 > &evec0) const
 
HOSTDEVICE void ComputeEigenvector1 (scalar a00, scalar a01, scalar a02, scalar a11, scalar a12, scalar a22, std::array< scalar, 3 > const &evec0, scalar eval1, std::array< scalar, 3 > &evec1) const
 

Static Private Member Functions

static HOSTDEVICE std::array< scalar, 3 > Multiply (scalar s, std::array< scalar, 3 > const &U)
 
static HOSTDEVICE std::array< scalar, 3 > Subtract (std::array< scalar, 3 > const &U, std::array< scalar, 3 > const &V)
 
static HOSTDEVICE std::array< scalar, 3 > Divide (std::array< scalar, 3 > const &U, scalar s)
 
static HOSTDEVICE scalar Dot (std::array< scalar, 3 > const &U, std::array< scalar, 3 > const &V)
 
static HOSTDEVICE std::array< scalar, 3 > Cross (std::array< scalar, 3 > const &U, std::array< scalar, 3 > const &V)
 

Member Function Documentation

◆ operator()()

void NISymmetricEigensolver3x3::operator() ( scalar  a00,
scalar  a01,
scalar  a02,
scalar  a11,
scalar  a12,
scalar  a22,
std::array< scalar, 3 > &  eval,
std::array< std::array< scalar, 3 >, 3 > &  evec 
) const

References ComputeEigenvector0(), norm(), and scalar.

◆ Multiply()

std::array< scalar, 3 > NISymmetricEigensolver3x3::Multiply ( scalar  s,
std::array< scalar, 3 > const &  U 
)
staticprivate

Referenced by ComputeEigenvector1().

◆ Subtract()

std::array< scalar, 3 > NISymmetricEigensolver3x3::Subtract ( std::array< scalar, 3 > const &  U,
std::array< scalar, 3 > const &  V 
)
staticprivate

Referenced by ComputeEigenvector1().

◆ Divide()

std::array< scalar, 3 > NISymmetricEigensolver3x3::Divide ( std::array< scalar, 3 > const &  U,
scalar  s 
)
staticprivate

References scalar.

Referenced by ComputeEigenvector0().

◆ Dot()

scalar NISymmetricEigensolver3x3::Dot ( std::array< scalar, 3 > const &  U,
std::array< scalar, 3 > const &  V 
)
staticprivate

References dot(), and scalar.

Referenced by ComputeEigenvector0().

◆ Cross()

std::array< scalar, 3 > NISymmetricEigensolver3x3::Cross ( std::array< scalar, 3 > const &  U,
std::array< scalar, 3 > const &  V 
)
staticprivate

◆ ComputeOrthogonalComplement()

void NISymmetricEigensolver3x3::ComputeOrthogonalComplement ( std::array< scalar, 3 > const &  W,
std::array< scalar, 3 > &  U,
std::array< scalar, 3 > &  V 
) const
private

References Cross(), and scalar.

Referenced by ComputeEigenvector1().

◆ ComputeEigenvector0()

void NISymmetricEigensolver3x3::ComputeEigenvector0 ( scalar  a00,
scalar  a01,
scalar  a02,
scalar  a11,
scalar  a12,
scalar  a22,
scalar  eval0,
std::array< scalar, 3 > &  evec0 
) const
private

References Cross(), Divide(), Dot(), and scalar.

Referenced by operator()().

◆ ComputeEigenvector1()

void NISymmetricEigensolver3x3::ComputeEigenvector1 ( scalar  a00,
scalar  a01,
scalar  a02,
scalar  a11,
scalar  a12,
scalar  a22,
std::array< scalar, 3 > const &  evec0,
scalar  eval1,
std::array< scalar, 3 > &  evec1 
) const
private

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