TDMS
Time Domain Maxwell Solver
|
A split field defined over a grid. More...
#include <field.h>
Public Member Functions | |
SplitField ()=default | |
SplitField (int I_total, int J_total, int K_total) | |
void | allocate () |
void | zero () |
void | allocate_and_zero () |
void | initialise_fftw_plan (int n_threads, EHVec &eh_vec) |
double | largest_field_value () |
Fetches the largest absolute value of the field. | |
virtual double | interpolate_to_centre_of (AxialDirection d, CellCoordinate cell)=0 |
Interpolates a SplitField component to the centre of a Yee cell. | |
![]() | |
int | max_IJK_tot () const |
void | set_preferred_interpolation_methods (tdms_flags::InterpolationMethod im) |
Set the preferred interpolation methods. | |
Public Attributes | |
SplitFieldComponent | xy |
SplitFieldComponent | xz |
SplitFieldComponent | yx |
SplitFieldComponent | yz |
SplitFieldComponent | zx |
SplitFieldComponent | zy |
![]() | |
IJKDimensions | tot = {0, 0, 0} |
Protected Member Functions | |
virtual int | delta_n ()=0 |
Additional Inherited Members | |
![]() | |
tdms_flags::InterpolationMethod | interpolation_method |
A split field defined over a grid.
To reconstruct the components we have e.g.: Ex = Exy + Exz multiplied by a phase factor
|
default |
Default no arguments constructor
SplitField::SplitField | ( | int | I_total, |
int | J_total, | ||
int | K_total | ||
) |
Constructor of the field with a defined size in the x, y, z Cartesian dimensions
void SplitField::allocate | ( | ) |
Allocate the memory appropriate for all the 3D tensors associated with this split field
|
inline |
Allocate and set to zero all components of the field
void SplitField::initialise_fftw_plan | ( | int | n_threads, |
EHVec & | eh_vec | ||
) |
Initialise the fftw plans for all components
n_threads | Number of threads to split over |
eh_vec | // TODO |
|
pure virtual |
Interpolates a SplitField component to the centre of a Yee cell.
d | SplitField component to interpolate |
cell | Index (i,j,k) of the Yee cell to interpolate to the centre of |
Implemented in ElectricSplitField, MagneticSplitField, and CurrentDensitySplitField.
double SplitField::largest_field_value | ( | ) |
Fetches the largest absolute value of the field.
Split field values are sums of the corresponding components, so this function returns the largest absolute value of the entries in (xy + xz), (yx + yz), (zx + zy)
void SplitField::zero | ( | ) |
Set all the values of all components of the field to zero
SplitFieldComponent SplitField::xy |
Magnitude of the xy component at each grid point (i,j,k)
SplitFieldComponent SplitField::xz |
Magnitude of the xz component at each grid point (i,j,k)
SplitFieldComponent SplitField::yx |
Magnitude of the yx component at each grid point (i,j,k)
SplitFieldComponent SplitField::yz |
Magnitude of the yz component at each grid point (i,j,k)
SplitFieldComponent SplitField::zx |
Magnitude of the zx component at each grid point (i,j,k)
SplitFieldComponent SplitField::zy |
Magnitude of the zy component at each grid point (i,j,k)