NeoN
WIP Prototype of a modern OpenFOAM core
Loading...
Searching...
No Matches
Namespaces | Classes | Concepts | Typedefs | Functions | Variables
NeoN Namespace Reference

Namespaces

namespace  detail
 
namespace  dsl
 
namespace  finiteVolume
 
namespace  la
 
namespace  sundials
 
namespace  timeIntegration
 

Classes

class  ArgList
 
class  BaseClassData
 Represents the data for a base class. More...
 
class  BaseClassDocumentation
 Provides a mechanism for registering and retrieving documentation for base and derived classes. More...
 
class  BoundaryData
 Represents the boundary fields for a computational domain. More...
 
class  BoundaryMesh
 Represents boundaries of an unstructured mesh. More...
 
class  Collection
 A type-erased interface collection types. More...
 
class  CollectionMixin
 A mixin class for collection of documents in a database to simplify the implementation of common operations. More...
 
class  CPUExecutor
 Executor for handling multicore CPU based parallelization. More...
 
class  Database
 
class  DerivedClassDocumentation
 Class representing the documentation for a derived class. More...
 
class  Dictionary
 A class representing a dictionary that stores key-value pairs. More...
 
class  DimensionMismatch
 Error for handling two containers of incompatible lengths. More...
 
class  Document
 A class representing a document in a database. More...
 
class  Error
 Base class for consistent error representation. More...
 
class  Field
 Represents the domain fields for a computational domain. More...
 
class  GPUExecutor
 Executor for GPU offloading. More...
 
class  NeoNException
 Custom exception class for NeoN. More...
 
struct  Parameters
 
struct  RegisterDocumentation
 Template struct for registering documentation of a base class. More...
 
class  RuntimeSelectionFactory
 A factory class for runtime selection of derived classes. More...
 
class  RuntimeSelectionFactory< Base, Parameters< Args... > >
 
class  SegmentedVector
 Data structure that stores a segmented fields or a vector of vectors. More...
 
class  SegmentedVectorView
 A class representing a segment of indices. More...
 
class  SerialExecutor
 Reference executor for serial CPU execution. More...
 
class  StencilDataBase
 A class that represents a stencil database. More...
 
struct  SumKernel
 
class  Time
 
class  TokenList
 A class representing a list of tokens. More...
 
class  UnstructuredMesh
 Represents an unstructured mesh in NeoN. More...
 
class  Vec3
 A class for the representation of a 3D Vec3. More...
 
class  Vector
 A class to contain the data and executors for a field and define some basic operations. More...
 
class  View
 

Concepts

concept  parallelForKernel
 
concept  parallelForVectorKernel
 

Typedefs

using DocumentValidator = std::function< bool(Dictionary)>
 A type alias for a function that validates a Dictionary object.
 
using Executor = std::variant< SerialExecutor, CPUExecutor, GPUExecutor >
 
using Input = std::variant< Dictionary, TokenList >
 
using label = int32_t
 
using localIdx = int32_t
 
using globalIdx = int64_t
 
using size_t = std::size_t
 
using mpi_label_t = int
 
typedef float scalar
 
using word = std::string
 
using labelVector = NeoN::Vector< label >
 
using localIdxVector = NeoN::Vector< localIdx >
 
using scalarVector = NeoN::Vector< scalar >
 
using vectorVector = NeoN::Vector< Vec3 >
 

Functions

template<typename Type >
void validateRegistration (const Type &field, const std::string &errorMessage)
 Validates that a field is registered in the database.
 
bool hasId (Dictionary doc)
 Checks if a Dictionary object has an "id" key.
 
const std::string & name (const NeoN::Document &doc)
 Retrieves the name of a Document.
 
std::string & name (NeoN::Document &doc)
 Retrieves the name of a Document.
 
std::string demangle (const char *mangledName)
 
template<typename T , typename Container , typename Key >
void logBadAnyCast (const std::bad_any_cast &e, const Key &key, const Container &data)
 
void logOutRange (const std::out_of_range &e, const std::string &key, const std::unordered_map< std::string, std::any > &data)
 
bool operator== (const Executor &lhs, const Executor &rhs)
 Checks if two executors are equal, i.e. they are of the same type.
 
bool operator!= (const Executor &lhs, const Executor &rhs)
 Checks if two executors are not equal, i.e. they are not of the same type.
 
template<class DataClass >
DataClass read (Input input)
 
template<typename Executor , parallelForKernel Kernel>
void parallelFor (const Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, std::string name="parallelFor")
 
template<parallelForKernel Kernel>
void parallelFor (const NeoN::Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, std::string name="parallelFor")
 
template<typename Executor , typename ValueType , parallelForVectorKernel< ValueType > Kernel>
void parallelFor (const Executor &exec, Vector< ValueType > &field, Kernel kernel, std::string name="parallelFor")
 
template<typename ValueType , parallelForVectorKernel< ValueType > Kernel>
void parallelFor (Vector< ValueType > &field, Kernel kernel, std::string name="parallelFor")
 
template<typename Executor , typename Kernel , typename T >
void parallelReduce (const Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, T &value)
 
template<typename Kernel , typename T >
void parallelReduce (const NeoN::Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, T &value)
 
template<typename Executor , typename ValueType , typename Kernel , typename T >
void parallelReduce (const Executor &exec, Vector< ValueType > &field, Kernel kernel, T &value)
 
template<typename ValueType , typename Kernel , typename T >
void parallelReduce (Vector< ValueType > &field, Kernel kernel, T &value)
 
template<typename Executor , typename Kernel >
void parallelScan (const Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel)
 
template<typename Kernel >
void parallelScan (const NeoN::Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel)
 
template<typename Executor , typename Kernel , typename ReturnType >
void parallelScan (const Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, ReturnType &returnValue)
 
template<typename Kernel , typename ReturnType >
void parallelScan (const NeoN::Executor &exec, std::pair< localIdx, localIdx > range, Kernel kernel, ReturnType &returnValue)
 
template<>
KOKKOS_INLINE_FUNCTION localIdx one< localIdx > ()
 
template<>
KOKKOS_INLINE_FUNCTION localIdx zero< localIdx > ()
 
KOKKOS_INLINE_FUNCTION scalar mag (const scalar &s)
 
template<>
KOKKOS_INLINE_FUNCTION scalar one< scalar > ()
 
template<>
KOKKOS_INLINE_FUNCTION scalar zero< scalar > ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION T one ()
 
template<typename T >
KOKKOS_INLINE_FUNCTION T zero ()
 
KOKKOS_INLINE_FUNCTION Vec3 operator* (const scalar &sclr, Vec3 rhs)
 
KOKKOS_INLINE_FUNCTION scalar operator& (const Vec3 &lhs, Vec3 rhs)
 
KOKKOS_INLINE_FUNCTION scalar mag (const Vec3 &vec)
 
std::ostream & operator<< (std::ostream &out, const Vec3 &vec)
 
template<>
KOKKOS_INLINE_FUNCTION Vec3 one< Vec3 > ()
 
template<>
KOKKOS_INLINE_FUNCTION Vec3 zero< Vec3 > ()
 
void logOutRange (const std::out_of_range &e, const std::size_t &key, const std::vector< std::any > &data)
 
template<typename T >
Vector< T > operator+ (Vector< T > lhs, const Vector< T > &rhs)
 Arithmetic add operator, addition of two fields.
 
template<typename T >
Vector< T > operator- (Vector< T > lhs, const Vector< T > &rhs)
 Arithmetic subtraction operator, subtraction one field from another.
 
template<typename T , typename Inner >
void map (Vector< T > &a, const Inner inner, std::pair< localIdx, localIdx > range={0, 0})
 Map a field using a specific executor.
 
template<typename ValueType >
void fill (Vector< ValueType > &a, const std::type_identity_t< ValueType > value, std::pair< localIdx, localIdx > range={0, 0})
 Fill the field with a scalar value using a specific executor.
 
template<typename ValueType >
void setVector (Vector< ValueType > &a, const View< const std::type_identity_t< ValueType > > b, std::pair< localIdx, localIdx > range={0, 0})
 Set the field with a view of values using a specific executor.
 
template<typename ValueType >
void scalarMul (Vector< ValueType > &a, const scalar value)
 
template<typename ValueType >
void add (Vector< ValueType > &a, const Vector< std::type_identity_t< ValueType > > &b)
 
template<typename ValueType >
void sub (Vector< ValueType > &a, const Vector< std::type_identity_t< ValueType > > &b)
 
template<typename ValueType >
void mul (Vector< ValueType > &a, const Vector< std::type_identity_t< ValueType > > &b)
 
template<typename... Args>
auto spans (Args &... fields)
 
template<typename... Args>
auto copyToHosts (Args &... fields)
 
template<typename T >
bool equal (Vector< T > &field, T value)
 
template<typename T >
bool equal (const Vector< T > &field, const Vector< T > &field2)
 
template<typename T >
bool equal (const Vector< T > &field, View< T > span2)
 
template<typename IndexType >
IndexType segmentsFromIntervals (const Vector< IndexType > &intervals, Vector< IndexType > &offsets)
 Compute segment offsets from an input field corresponding to lengths by computing a prefix sum.
 
UnstructuredMesh createSingleCellMesh (const Executor exec)
 creates a mesh containing only a single cell @warn currently this is only a 2D mesh
 
UnstructuredMesh create1DUniformMesh (const Executor exec, const localIdx nCells)
 A factory function for a 1D mesh.
 

Variables

constexpr scalar ROOTVSMALL = 1e-18
 

Typedef Documentation

◆ DocumentValidator

A type alias for a function that validates a Dictionary object.

This type alias represents a function that takes a Dictionary object as an argument and returns a boolean value indicating whether the Dictionary is valid or not.

Example usage:

DocumentValidator validator = [](Dictionary dict) -> bool {
// Validation logic here
return true; // or false based on validation
};
A class representing a dictionary that stores key-value pairs.
std::function< bool(Dictionary)> DocumentValidator
A type alias for a function that validates a Dictionary object.
Definition document.hpp:30

Definition at line 30 of file document.hpp.

◆ Executor

using NeoN::Executor = typedef std::variant<SerialExecutor, CPUExecutor, GPUExecutor>

Definition at line 16 of file executor.hpp.

◆ globalIdx

using NeoN::globalIdx = typedef int64_t

Definition at line 31 of file label.hpp.

◆ Input

using NeoN::Input = typedef std::variant<Dictionary, TokenList>

Definition at line 13 of file input.hpp.

◆ label

using NeoN::label = typedef int32_t

Definition at line 24 of file label.hpp.

◆ labelVector

Definition at line 13 of file fieldTypeDefs.hpp.

◆ localIdx

using NeoN::localIdx = typedef int32_t

Definition at line 30 of file label.hpp.

◆ localIdxVector

Definition at line 14 of file fieldTypeDefs.hpp.

◆ mpi_label_t

using NeoN::mpi_label_t = typedef int

Definition at line 37 of file label.hpp.

◆ scalar

typedef float NeoN::scalar

Definition at line 14 of file scalar.hpp.

◆ scalarVector

Definition at line 15 of file fieldTypeDefs.hpp.

◆ size_t

using NeoN::size_t = typedef std::size_t

Definition at line 36 of file label.hpp.

◆ vectorVector

Definition at line 16 of file fieldTypeDefs.hpp.

◆ word

using NeoN::word = typedef std::string

Definition at line 15 of file time.hpp.

Function Documentation

◆ add()

template<typename ValueType >
void NeoN::add ( Vector< ValueType > &  a,
const Vector< std::type_identity_t< ValueType > > &  b 
)

Definition at line 119 of file fieldFreeFunctions.hpp.

◆ copyToHosts()

template<typename... Args>
auto NeoN::copyToHosts ( Args &...  fields)

Definition at line 150 of file fieldFreeFunctions.hpp.

◆ create1DUniformMesh()

UnstructuredMesh NeoN::create1DUniformMesh ( const Executor  exec,
const localIdx  nCells 
)

A factory function for a 1D mesh.

A 1D mesh in 3D space in which each cell has a left and a right face. The 1D mesh is aligned with the x coordinate of Cartesian coordinate system.

◆ createSingleCellMesh()

UnstructuredMesh NeoN::createSingleCellMesh ( const Executor  exec)

creates a mesh containing only a single cell @warn currently this is only a 2D mesh

a 2D mesh in 3D space with left, right, top, bottom boundary faces with the centre at (0.5, 0.5, 0.0) left, top, right, bottom faces and four boundaries one left, right, top, bottom

◆ demangle()

std::string NeoN::demangle ( const char *  mangledName)

◆ equal() [1/3]

template<typename T >
bool NeoN::equal ( const Vector< T > &  field,
const Vector< T > &  field2 
)

Definition at line 171 of file fieldFreeFunctions.hpp.

◆ equal() [2/3]

template<typename T >
bool NeoN::equal ( const Vector< T > &  field,
View< T >  span2 
)

Definition at line 193 of file fieldFreeFunctions.hpp.

◆ equal() [3/3]

template<typename T >
bool NeoN::equal ( Vector< T > &  field,
value 
)

Definition at line 156 of file fieldFreeFunctions.hpp.

◆ fill()

template<typename ValueType >
void NeoN::fill ( Vector< ValueType > &  a,
const std::type_identity_t< ValueType >  value,
std::pair< localIdx, localIdx range = {0, 0} 
)

Fill the field with a scalar value using a specific executor.

Parameters
fieldThe field to fill.
valueThe scalar value to fill the field with.
rangeThe range to fill the field in. If not provided, the whole field is filled.

Definition at line 50 of file fieldFreeFunctions.hpp.

◆ hasId()

bool NeoN::hasId ( Dictionary  doc)

Checks if a Dictionary object has an "id" key.

This function checks if the given Dictionary object has an "id" key.

Parameters
docThe Dictionary object to check.
Returns
true if the Dictionary has an "id" key, false otherwise.

◆ logBadAnyCast()

template<typename T , typename Container , typename Key >
void NeoN::logBadAnyCast ( const std::bad_any_cast &  e,
const Key &  key,
const Container &  data 
)

Definition at line 19 of file demangle.hpp.

◆ logOutRange() [1/2]

void NeoN::logOutRange ( const std::out_of_range &  e,
const std::size_t &  key,
const std::vector< std::any > &  data 
)

◆ logOutRange() [2/2]

void NeoN::logOutRange ( const std::out_of_range &  e,
const std::string &  key,
const std::unordered_map< std::string, std::any > &  data 
)

◆ mag() [1/2]

KOKKOS_INLINE_FUNCTION scalar NeoN::mag ( const scalar s)

Definition at line 20 of file scalar.hpp.

◆ mag() [2/2]

KOKKOS_INLINE_FUNCTION scalar NeoN::mag ( const Vec3 vec)

Definition at line 162 of file vec3.hpp.

◆ map()

template<typename T , typename Inner >
void NeoN::map ( Vector< T > &  a,
const Inner  inner,
std::pair< localIdx, localIdx range = {0, 0} 
)

Map a field using a specific executor.

Parameters
aThe field to map.
innerThe function to apply to each element of the field.
rangeThe range to map the field in. If not provided, the whole field is mapped.

Definition at line 29 of file fieldFreeFunctions.hpp.

◆ mul()

template<typename ValueType >
void NeoN::mul ( Vector< ValueType > &  a,
const Vector< std::type_identity_t< ValueType > > &  b 
)

Definition at line 136 of file fieldFreeFunctions.hpp.

◆ name() [1/2]

const std::string & NeoN::name ( const NeoN::Document doc)

Retrieves the name of a Document.

This function retrieves the name of the Document by looking up the "name" key in the Document's Dictionary object.

Parameters
docThe Document to retrieve the name from.
Returns
std::string The name of the Document.

◆ name() [2/2]

std::string & NeoN::name ( NeoN::Document doc)

Retrieves the name of a Document.

This function retrieves the name of the Document by looking up the "name" key in the Document's Dictionary object.

Parameters
docThe Document to retrieve the name from.
Returns
std::string The name of the Document.

◆ one()

template<typename T >
KOKKOS_INLINE_FUNCTION T NeoN::one ( )

◆ one< localIdx >()

template<>
KOKKOS_INLINE_FUNCTION localIdx NeoN::one< localIdx > ( )

Definition at line 41 of file label.hpp.

◆ one< scalar >()

template<>
KOKKOS_INLINE_FUNCTION scalar NeoN::one< scalar > ( )

Definition at line 24 of file scalar.hpp.

◆ one< Vec3 >()

template<>
KOKKOS_INLINE_FUNCTION Vec3 NeoN::one< Vec3 > ( )

Definition at line 168 of file vec3.hpp.

◆ operator!=()

bool NeoN::operator!= ( const Executor lhs,
const Executor rhs 
)
inline

Checks if two executors are not equal, i.e. they are not of the same type.

Parameters
lhsThe first executor.
rhsThe second executor.
Returns
True if the executors not are equal, false otherwise.

Definition at line 51 of file executor.hpp.

◆ operator&()

KOKKOS_INLINE_FUNCTION scalar NeoN::operator& ( const Vec3 lhs,
Vec3  rhs 
)

Definition at line 156 of file vec3.hpp.

◆ operator*()

KOKKOS_INLINE_FUNCTION Vec3 NeoN::operator* ( const scalar sclr,
Vec3  rhs 
)

Definition at line 149 of file vec3.hpp.

◆ operator+()

template<typename T >
Vector< T > NeoN::operator+ ( Vector< T >  lhs,
const Vector< T > &  rhs 
)

Arithmetic add operator, addition of two fields.

Parameters
lhsThe field to add with this field.
rhsThe field to add with this field.
Returns
The result of the addition.

Definition at line 460 of file vector.hpp.

◆ operator-()

template<typename T >
Vector< T > NeoN::operator- ( Vector< T >  lhs,
const Vector< T > &  rhs 
)

Arithmetic subtraction operator, subtraction one field from another.

Parameters
lhsThe field to subtract from.
rhsThe field to subtract by.
Returns
The result of the subtraction.

Definition at line 473 of file vector.hpp.

◆ operator<<()

std::ostream & NeoN::operator<< ( std::ostream &  out,
const Vec3 vec 
)

◆ operator==()

bool NeoN::operator== ( const Executor lhs,
const Executor rhs 
)
inline

Checks if two executors are equal, i.e. they are of the same type.

Parameters
lhsThe first executor.
rhsThe second executor.
Returns
True if the executors are equal, false otherwise.

Definition at line 24 of file executor.hpp.

◆ parallelFor() [1/4]

template<typename Executor , parallelForKernel Kernel>
void NeoN::parallelFor ( const Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel,
std::string  name = "parallelFor" 
)

Definition at line 28 of file parallelAlgorithms.hpp.

◆ parallelFor() [2/4]

template<typename Executor , typename ValueType , parallelForVectorKernel< ValueType > Kernel>
void NeoN::parallelFor ( const Executor exec,
Vector< ValueType > &  field,
Kernel  kernel,
std::string  name = "parallelFor" 
)

Definition at line 75 of file parallelAlgorithms.hpp.

◆ parallelFor() [3/4]

template<parallelForKernel Kernel>
void NeoN::parallelFor ( const NeoN::Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel,
std::string  name = "parallelFor" 
)

Definition at line 56 of file parallelAlgorithms.hpp.

◆ parallelFor() [4/4]

template<typename ValueType , parallelForVectorKernel< ValueType > Kernel>
void NeoN::parallelFor ( Vector< ValueType > &  field,
Kernel  kernel,
std::string  name = "parallelFor" 
)

Definition at line 103 of file parallelAlgorithms.hpp.

◆ parallelReduce() [1/4]

template<typename Executor , typename Kernel , typename T >
void NeoN::parallelReduce ( const Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel,
T &  value 
)

Definition at line 109 of file parallelAlgorithms.hpp.

◆ parallelReduce() [2/4]

template<typename Executor , typename ValueType , typename Kernel , typename T >
void NeoN::parallelReduce ( const Executor exec,
Vector< ValueType > &  field,
Kernel  kernel,
T &  value 
)

Definition at line 150 of file parallelAlgorithms.hpp.

◆ parallelReduce() [3/4]

template<typename Kernel , typename T >
void NeoN::parallelReduce ( const NeoN::Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel,
T &  value 
)

Definition at line 141 of file parallelAlgorithms.hpp.

◆ parallelReduce() [4/4]

template<typename ValueType , typename Kernel , typename T >
void NeoN::parallelReduce ( Vector< ValueType > &  field,
Kernel  kernel,
T &  value 
)

Definition at line 179 of file parallelAlgorithms.hpp.

◆ parallelScan() [1/4]

template<typename Executor , typename Kernel >
void NeoN::parallelScan ( const Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel 
)

Definition at line 185 of file parallelAlgorithms.hpp.

◆ parallelScan() [2/4]

template<typename Executor , typename Kernel , typename ReturnType >
void NeoN::parallelScan ( const Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel,
ReturnType &  returnValue 
)

Definition at line 201 of file parallelAlgorithms.hpp.

◆ parallelScan() [3/4]

template<typename Kernel >
void NeoN::parallelScan ( const NeoN::Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel 
)

Definition at line 195 of file parallelAlgorithms.hpp.

◆ parallelScan() [4/4]

template<typename Kernel , typename ReturnType >
void NeoN::parallelScan ( const NeoN::Executor exec,
std::pair< localIdx, localIdx range,
Kernel  kernel,
ReturnType &  returnValue 
)

Definition at line 216 of file parallelAlgorithms.hpp.

◆ read()

template<class DataClass >
DataClass NeoN::read ( Input  input)

Definition at line 16 of file input.hpp.

◆ scalarMul()

template<typename ValueType >
void NeoN::scalarMul ( Vector< ValueType > &  a,
const scalar  value 
)

Definition at line 94 of file fieldFreeFunctions.hpp.

◆ segmentsFromIntervals()

template<typename IndexType >
IndexType NeoN::segmentsFromIntervals ( const Vector< IndexType > &  intervals,
Vector< IndexType > &  offsets 
)

Compute segment offsets from an input field corresponding to lengths by computing a prefix sum.

The offsets are computed by a prefix sum of the input values. So, with given input of {1, 2, 3, 4, 5} the offsets are {0, 1, 3, 6, 10, 15}. Note that the length of offSpan must be length of intervals + 1 and are all elements of offSpan are required to be zero

Parameters
[in]inThe values to compute the offsets from.
[in,out]offsetsThe field to store the resulting offsets in.

Definition at line 25 of file segmentedVector.hpp.

◆ setVector()

template<typename ValueType >
void NeoN::setVector ( Vector< ValueType > &  a,
const View< const std::type_identity_t< ValueType > >  b,
std::pair< localIdx, localIdx range = {0, 0} 
)

Set the field with a view of values using a specific executor.

Parameters
aThe field to set.
bThe view of values to set the field with.
rangeThe range to set the field in. If not provided, the whole field is set.

Definition at line 76 of file fieldFreeFunctions.hpp.

◆ spans()

template<typename... Args>
auto NeoN::spans ( Args &...  fields)

Definition at line 144 of file fieldFreeFunctions.hpp.

◆ sub()

template<typename ValueType >
void NeoN::sub ( Vector< ValueType > &  a,
const Vector< std::type_identity_t< ValueType > > &  b 
)

Definition at line 128 of file fieldFreeFunctions.hpp.

◆ validateRegistration()

template<typename Type >
void NeoN::validateRegistration ( const Type &  field,
const std::string &  errorMessage 
)

Validates that a field is registered in the database.

Template Parameters
TypeThe type of the field.
Parameters
fieldThe field to validate.
errorMessageThe error message
Exceptions
std::runtime_errorif the field is not registered in the database.

Definition at line 120 of file database.hpp.

◆ zero()

template<typename T >
KOKKOS_INLINE_FUNCTION T NeoN::zero ( )

◆ zero< localIdx >()

template<>
KOKKOS_INLINE_FUNCTION localIdx NeoN::zero< localIdx > ( )

Definition at line 47 of file label.hpp.

◆ zero< scalar >()

template<>
KOKKOS_INLINE_FUNCTION scalar NeoN::zero< scalar > ( )

Definition at line 30 of file scalar.hpp.

◆ zero< Vec3 >()

template<>
KOKKOS_INLINE_FUNCTION Vec3 NeoN::zero< Vec3 > ( )

Definition at line 174 of file vec3.hpp.

Variable Documentation

◆ ROOTVSMALL

constexpr scalar NeoN::ROOTVSMALL = 1e-18
constexpr

Definition at line 17 of file scalar.hpp.