|
int | adjust_dimensions (int *N, const iVector_3 &extra_cells, int *bc=NULL, valtype *courantf=NULL) |
| Changes dimensions, resolution and boundary conditions according to requirements of the Block.
|
|
iVector_3 | get_cell_cluster () const |
|
int | init (const Box &B, const indtype *ndim, int wf_) |
| Init override to initialize additional data.
|
|
void | unpack_ind (indtype ind, int &ftype, int &dir, indtype &ix, indtype &iy, indtype &iz) const |
| Indexing the value.
|
|
indtype | pack_ind (int ftype, int dir, indtype ix, indtype iy, indtype iz) const |
| Packs component indicies to integer.
|
|
grid_t & | get_field_grid (int ftype, int dir) |
| Gets interpolation grid for each filed type and direction. The grids normally can not be used for accessing field data.
|
|
const grid_t & | get_field_grid (int ftype, int dir) const |
| Gets interpolation grid for each filed type and direction.
|
|
virtual size_t | packed_size () const |
|
virtual size_t | data_size () const |
|
int | set_fix_storage (emFixStorage *fs) |
| Sets a pointer for fix storage for contour fixes.
|
|
template<class contour_it > |
int | set_contour_fix (const contour_it &cnti, int fix_flags, ptrdiff_t shift) |
| Sets fix flags and shift from fix storage begin for a specific contour cnti.
|
|
template<class fix_stack_t > |
void | apply_fixes_before (fix_stack_t &fix_stack, indtype oind, emtype *out) const |
| Base data does not support contour fixes.
|
|
template<class fix_stack_t > |
void | apply_fixes_after (fix_stack_t &fix_stack, indtype oind, emtype *out) const |
| Base data does not support contour fixes.
|
|
virtual int | get_sync_hsteps () const |
| Number of mesh steps per field (half steps) mesh block is performing between synchronization, i.e.
|
|
int | get_perm_sign () const |
| Returns permutation sign if the coords are flipped: 1 = even (cycle), -1 = odd.
|
|
Vector_3 | get_dx (bool int_order=false) const |
| Gets space steps.
|
|
template<typename contour_it_t > |
Box | get_vec_cell_bounding_box_extent (const contour_it_t &cnti) const |
| Bounding box for current yee cell.
|
|
|
int | StepO (int field) |
| performs (optimized) explicit timestep
|
|
int | StepV (int field) |
| performs vectorizable explicit timestep
|
|
indtype | get_start_ind (int field, int dir) const |
| Gets starting index of the mesh of certain field and dir. All other mesh indicies for (field,dir) are then calculated by adding pack_ind(ix,iy,iz).
|
|
void | set_arr (emtype *sptr) |
| Assigns external pointer for data array.
|
|
template<class contour_it > |
indtype | put_media_type (const contour_it &cnti, valtype dt, emtype perm, emtype loss) |
| Records the media data for a contour given by.
|
|
Base data structure to use in Yee block.
int base_yee_struc_t::adjust_dimensions |
( |
int * |
N, |
|
|
const iVector_3 & |
extra_cells, |
|
|
int * |
bc = NULL , |
|
|
valtype * |
courantf = NULL |
|
) |
| |
|
inline |
Changes dimensions, resolution and boundary conditions according to requirements of the Block.
For example, some blocks may require N=2^P setting, etc. To use before the construction of the block. Ajustments are made in the way that supercell size (N-extra cells)*dr remains the same, but total N matches the criterion.
- Returns
- >0 if changes are made, 0 if no changes are needed, <0 if dimensions or BCs are incompatible with the mesh block.
virtual int base_yee_struc_t::get_sync_hsteps |
( |
| ) |
const |
|
inlinevirtual |
Number of mesh steps per field (half steps) mesh block is performing between synchronization, i.e.
between subsequent Step calls If this value is 1, then the call to Step(field,...) results in the layered update of the corresponding field only If this value is N>1, then the call to Step(field,...) results in N/2 merged steps for 2 fields when the parameter field matches the starting field.