NeoN
WIP Prototype of a modern OpenFOAM core
|
A class to contain the data and executors for a field and define some basic operations. More...
#include <vector.hpp>
Public Types | |
using | VectorValueType = ValueType |
Public Member Functions | |
Vector (const Executor &exec, size_t size) | |
Create an uninitialized Vector with a given size on an executor. | |
Vector (const Executor &exec, const ValueType *in, size_t size, Executor hostExec=SerialExecutor()) | |
Create a Vector with a given size from existing memory on an executor. | |
Vector (const Executor &exec, size_t size, ValueType value) | |
Create a Vector with a given size on an executor and uniform value. | |
Vector (const Executor &exec, std::vector< ValueType > in) | |
Create a Vector from a given vector of values on an executor. | |
Vector (const Executor &exec, const Vector< ValueType > &in) | |
Create a Vector as a copy of a Vector on a specified executor. | |
Vector (const Vector< ValueType > &rhs) | |
Copy constructor, creates a new field with the same size and data as the parsed field. | |
Vector (Vector< ValueType > &&rhs) noexcept | |
Move constructor, moves the data from the parsed field to the new field. | |
~Vector () | |
Destroy the Vector object. | |
template<typename func > | |
void | apply (func f) |
applies a functor, transformation, to the field | |
Vector< ValueType > | copyToExecutor (Executor dstExec) const |
Copies the data to a new field on a specific executor. | |
Vector< ValueType > | copyToHost () const |
Returns a copy of the field back to the host. | |
void | copyToHost (Vector< ValueType > &result) |
Copies the data (from anywhere) to a parsed host field. | |
ValueType & | operator[] (const size_t i)=delete |
const ValueType & | operator[] (const size_t i) const =delete |
void | operator= (const ValueType &rhs) |
Assignment operator, Sets the field values to that of the passed value. | |
void | operator= (const Vector< ValueType > &rhs) |
Assignment operator, Sets the field values to that of the parsed field. | |
Vector< ValueType > & | operator+= (const Vector< ValueType > &rhs) |
Arithmetic add operator, addition of a second field. | |
Vector< ValueType > & | operator-= (const Vector< ValueType > &rhs) |
Arithmetic subtraction operator, subtraction by a second field. | |
Vector< ValueType > | operator* (const Vector< scalar > &rhs) |
Arithmetic multiply operator, multiply by a second field. | |
Vector< ValueType > | operator* (const scalar rhs) |
Arithmetic multiply operator, multiplies every cell in the field by a scalar. | |
Vector< ValueType > & | operator*= (const Vector< scalar > &rhs) |
Arithmetic multiply operator, multiplies this field by another field element-wise. | |
Vector< ValueType > & | operator*= (const scalar rhs) |
Arithmetic multiply-assignment operator, multiplies every cell in the field by a scalar and updates the field in place. | |
void | resize (const size_t size) |
Resizes the field to a new size. | |
ValueType * | data () |
Direct access to the underlying field data. | |
const ValueType * | data () const |
Direct access to the underlying field data. | |
const Executor & | exec () const |
Gets the executor associated with the field. | |
size_t | size () const |
Gets the size of the field. | |
label | ssize () const |
Gets the size of the field. | |
bool | empty () const |
Checks if the field is empty. | |
View< ValueType > | view () &&=delete |
View< const ValueType > | view () const &&=delete |
View< ValueType > | view () & |
Gets the field as a view. | |
View< const ValueType > | view () const & |
Gets the field as a view. | |
View< ValueType > | view (std::pair< size_t, size_t > range) &&=delete |
View< const ValueType > | view (std::pair< size_t, size_t > range) const &&=delete |
View< ValueType > | view (std::pair< size_t, size_t > range) & |
Gets a sub view of the field as a view. | |
View< const ValueType > | view (std::pair< size_t, size_t > range) const & |
Gets a sub view of the field as a view. | |
std::pair< size_t, size_t > | range () const |
Gets the range of the field. | |
A class to contain the data and executors for a field and define some basic operations.
Definition at line 50 of file vector.hpp.
using NeoN::Vector< ValueType >::VectorValueType = ValueType |
Definition at line 55 of file vector.hpp.
|
inline |
Create an uninitialized Vector with a given size on an executor.
exec | Executor associated to the field |
size | size of the field |
Definition at line 62 of file vector.hpp.
|
inline |
Create a Vector with a given size from existing memory on an executor.
exec | Executor associated to the field |
in | Pointer to existing data |
size | size of the field |
hostExec | Executor where the original data is located |
Definition at line 80 of file vector.hpp.
|
inline |
Create a Vector with a given size on an executor and uniform value.
exec | Executor associated to the field |
size | size of the field |
value | the default value |
Definition at line 101 of file vector.hpp.
|
inline |
Create a Vector from a given vector of values on an executor.
exec | Executor associated to the field |
in | a vector of elements to copy over |
Definition at line 117 of file vector.hpp.
|
inline |
Create a Vector as a copy of a Vector on a specified executor.
exec | Executor associated to the field |
in | a Vector of elements to copy over |
Definition at line 124 of file vector.hpp.
|
inline |
Copy constructor, creates a new field with the same size and data as the parsed field.
rhs | The field to copy from. |
Definition at line 132 of file vector.hpp.
|
inlinenoexcept |
Move constructor, moves the data from the parsed field to the new field.
rhs | The field to move from. |
Definition at line 138 of file vector.hpp.
|
inline |
Destroy the Vector object.
Definition at line 147 of file vector.hpp.
|
inline |
applies a functor, transformation, to the field
f | The functor to map over the field. |
Definition at line 159 of file vector.hpp.
|
inline |
Copies the data to a new field on a specific executor.
dstExec | The executor on which the data should be copied. |
Definition at line 169 of file vector.hpp.
|
inline |
Returns a copy of the field back to the host.
Definition at line 183 of file vector.hpp.
|
inline |
Copies the data (from anywhere) to a parsed host field.
result | The field into which the data must be copied. Must be sized. |
Definition at line 193 of file vector.hpp.
|
inline |
Direct access to the underlying field data.
Definition at line 336 of file vector.hpp.
|
inline |
Direct access to the underlying field data.
Definition at line 342 of file vector.hpp.
|
inline |
Checks if the field is empty.
Definition at line 366 of file vector.hpp.
|
inline |
Gets the executor associated with the field.
Definition at line 348 of file vector.hpp.
|
inline |
Arithmetic multiply operator, multiplies every cell in the field by a scalar.
rhs | The scalar to multiply with the field. |
Definition at line 273 of file vector.hpp.
|
inline |
Arithmetic multiply operator, multiply by a second field.
rhs | The field to subtract from this field. |
Definition at line 258 of file vector.hpp.
|
inline |
Arithmetic multiply-assignment operator, multiplies every cell in the field by a scalar and updates the field in place.
rhs | The scalar to multiply with the field. |
Definition at line 299 of file vector.hpp.
|
inline |
Arithmetic multiply operator, multiplies this field by another field element-wise.
rhs | The field to multiply with this field. |
Definition at line 286 of file vector.hpp.
|
inline |
Arithmetic add operator, addition of a second field.
rhs | The field to add with this field. |
Definition at line 234 of file vector.hpp.
|
inline |
Arithmetic subtraction operator, subtraction by a second field.
rhs | The field to subtract from this field. |
Definition at line 246 of file vector.hpp.
|
inline |
Assignment operator, Sets the field values to that of the passed value.
rhs | The value to set the field to. |
Definition at line 211 of file vector.hpp.
|
inline |
Assignment operator, Sets the field values to that of the parsed field.
rhs | The field to copy from. |
Definition at line 219 of file vector.hpp.
|
delete |
|
delete |
|
inline |
Gets the range of the field.
Definition at line 417 of file vector.hpp.
|
inline |
Resizes the field to a new size.
size | The new size to set the field to. |
Definition at line 310 of file vector.hpp.
|
inline |
Gets the size of the field.
Definition at line 354 of file vector.hpp.
|
inline |
Gets the size of the field.
Definition at line 360 of file vector.hpp.
|
inline |
|
delete |
|
inline |
|
delete |
|
inline |
Gets a sub view of the field as a view.
Definition at line 399 of file vector.hpp.
|
delete |
|
inline |
Gets a sub view of the field as a view.
Definition at line 408 of file vector.hpp.
|
delete |