16 template<
typename T>
void get_per(
Vec_3D<T> &position,
size_t perx,
size_t pery,
size_t perz);
36 T*
real() {
return data.data();}
37 const T*
real()
const {
return data.data();}
40 #pragma omp parallel for 41 for (
size_t i = 0; i <
length; i++) this->data[i]=val;
48 T&
operator()(
size_t i,
size_t j,
size_t k){
return data[i*N2*N3+j*N3+k]; }
49 const T&
operator()(
size_t i,
size_t j,
size_t k)
const{
return data[i*N2*N3+j*N3+k]; }
52 const T&
operator()(
size_t i,
size_t j)
const{
return data[i*N3+j]; }
57 return data[size_t(pos[0])*N2*N3+size_t(pos[1])*N3+size_t(pos[2])];
63 return data[size_t(pos[0])*N2*N3+size_t(pos[1])*N3+size_t(pos[2])];
68 #pragma omp parallel for 69 for (
size_t i = 0; i <
length; i++) this->data[i]+=rhs;
77 #pragma omp parallel for 78 for (
size_t i = 0; i <
length; i++) this->data[i]*=rhs;
84 #pragma omp parallel for 85 for (
size_t i = 0; i <
length; i++) this->data[i]/=rhs;
122 #pragma omp parallel for 123 for (
size_t i = part; i < this->
length; i+=2){
137 return data[size_t(pos[0])*
N2*
N3+size_t(pos[1])*
N3+size_t(pos[2])];
143 return data[size_t(pos[0])*
N2*
N3+size_t(pos[1])*
N3+size_t(pos[2])];
Mesh_base & operator-=(const T &rhs)
FFTW_COMPLEX_TYPE * complex()
get fftw_complex pointer to data
const double & operator()(Vec_3D< U > pos) const
const T & operator[](size_t i) const
: creates a mesh of N*N*(N+2) cells
const FFTW_COMPLEX_TYPE * complex() const
get const fftw_complex pointer to data
Mesh_base(size_t n1, size_t n2, size_t n3)
const T & operator()(size_t i, size_t j) const
system include files and for project-specific include files that are used frequently but are changed ...
T & operator()(size_t i, size_t j, size_t k)
T & operator()(size_t i, size_t j)
Mesh_base & operator+=(const T &rhs)
void reset_part(bool part)
single / double / long double definitions
const T & operator()(size_t i, size_t j, size_t k) const
double & operator()(Vec_3D< U > pos)
void get_per(Vec_3D< T > &position, size_t per)
const T & operator()(Vec_3D< U > pos) const
T & operator()(Vec_3D< U > pos)
: class handling basic mesh functions, the most important are creating and destroing the underlying d...
: class handling basic 3D-vector functions, definitions
#define FFTW_COMPLEX_TYPE
Mesh_base & operator*=(const T &rhs)
Mesh_base & operator/=(const T &rhs)