Electromagnetic Template Library (EMTL)
|
Base Yee block supporting contour fixes for per-contour updates. More...
#include <yee.h>
Public Member Functions | |
emYeeRectBlockFix () | |
Default constructor for pre-initialized object to allow for post-inits. | |
bool | use_contour_fixes (bool toggle) |
Switch between contour and layer fixes. | |
Public Member Functions inherited from emYeeRectBlockBase< simple_array_order_t, fix_yee_struc_t > | |
Vector_3 | get_position (indtype ind, int &ftype, Vector_3 &fdir) const |
Gets the position, fieldtype and direction of a data with given index. | |
emYeeRectBlockBase () | |
Default constructor for pre-initialized object to allow for post-inits. | |
std::pair< size_t, size_t > | fill_interp_value_async (fix_stack_t &fix_stack, const interp_form_tt *entry, int depth, int action, const emtype *src, const emtype *src_vec, emtype *dest, emtype *dest_vec) |
vectorized form does nothing, direct and indirect copies work the same way | |
emInterpolation | create_interpolation (const Vector_3 &pos, const Vector_3 &dir, int fieldtype) |
Old interpolation form. | |
interp_arg_tt::interp_form_t | create_interpolation (const interp_arg_tt &arg, std::vector< interp_arg_tt > *nonlocal=NULL, bool all_nonlocal=false) |
Returns the coefficients of field interpolation. | |
int | get_out_data_max_count () const |
Gets the maximal possible number of output points for a contour. | |
int | get_out_data_index (const contour_it_t &cnti, indtype *ind, valtype *coeff, int check=0) const |
Gets the data index and coefficients of output (central) updated data points as distributed from contour center. | |
int | get_inp_data_max_count () const |
Gets the maximal possible number of inputs points for one edge of a contour. | |
int | get_edge_count (const contour_it_t &cnti) const |
Gets the number of edges for the given contour. | |
int | get_inp_data_index (const contour_it_t &cnti, int edgenum, indtype *ind, valtype *coeff, int check=0) const |
Gets the data index and coefficients of input (edge) data points to contribute to each edge center. | |
int | mark_all_unused () |
Mark all contours as unused (the fileds will not be updated by Step). | |
int | mark_all_used (Vector_3 *vmin=NULL, Vector_3 *vmax=NULL) |
Mark all contours as used. | |
int | mark_cnt_used (const contour_it_t &cnti, int border=0) |
Mark the contour as used (for optimization purposes). | |
virtual int | commit_marking () |
Commits the marked contours to match iterator range. | |
int | join_markings () |
Joins local thread marking range with global range (for multithreaded processing). | |
int | auto_marking (Vector_3 *vmin, Vector_3 *vmax) |
Mark all contours in vmin to vmax box used. | |
size_t | GetDataSize () const |
emtype * | GetDataPtr () |
Gets data pointer associated with the mesh block. | |
int | SetDataPtr (EmtypePtr_t _ptr) |
Sets the pointer and clears values. | |
int | Reset () |
Clears all buffers. | |
indtype | put_medium (const contour_it_t &it, valtype dt, contour_table_t &table) |
Records the media data from table for a contour given by. | |
int | StepC (int field, fix_stack_t &fl=fix_stack_t()) |
Performs non-optimized contour-based explicit timestep. | |
void | StepContour (const contour_it_t &cnt, fix_stack_t &fl=fix_stack_t()) |
Performs explicit timestep for one single contour. | |
int | set_avx_axis (int axis) |
Sets the axis that will be used for (AVX/SSE) vectorization, 0=x, 1=y, 2=z, -1 = automatic setting (usually largest dimension) Vectorization works better for dimensions with uniform geometry (less object boundaries). | |
int | get_transfer_flags () const |
virtual int | get_first_updated_field () const |
Gets the first field to be updated in a bulk loop. | |
virtual int | set_first_updated_field (int _first_updated_field) |
Sets the first field to update. | |
Box | get_cell_bounding_box (const contour_it_t &cnti) const |
Bounding box for current yee cell. | |
Box | get_vec_cell_bounding_box (const contour_it_t &cnti) const |
Bounding box for vector cell that includes current iterator. | |
Public Member Functions inherited from emComponent | |
emDump * | GetEmDumper () |
This function insures that the returned dumper is of true emDumper type. | |
Additional Inherited Members | |
Public Types inherited from emYeeRectBlockBase< simple_array_order_t, fix_yee_struc_t > | |
typedef Box | region_t |
Synonym for enclosing region classname. | |
Public Attributes inherited from emYeeRectBlockBase< simple_array_order_t, fix_yee_struc_t > | |
EmtypePtr_t | ptr |
main (aligned) data pointer | |
indtype | ustart [6][3] |
Grid box internal area (border excluded) limits for each field type and direction, default is [1, N-2]. | |
Vector_3 | dx |
space increments | |
Vector_3 | dx2 |
space increments divided by 2 | |
Protected Member Functions inherited from emYeeRectBlockBase< simple_array_order_t, fix_yee_struc_t > | |
Vector_3 | get_position (indtype ix, indtype iy, indtype iz, int cdir, int ftype, Vector_3 &fdir) const |
Data position via 3 indicies, and contour ftype. | |
int | get_inp_data_index_unpacked (const contour_it_t &cnti, int edgenum, indtype *ind) const |
Gets the data index and coefficients of input (edge) data points to contribute to each edge center. | |
Protected Attributes inherited from emYeeRectBlockBase< simple_array_order_t, fix_yee_struc_t > | |
int | dhalo_left [3] |
data halos for blocks with no builtin PBCs. | |
int | force_halos |
forcing halo inclusion from both sides of the mesh. Works for axes with no builtin PBCs. | |
indtype | mstart [6][3] |
Commited local memory range for all grids. | |
indtype | estart [6][3] |
marking for grid box iterator limits for each field type and direction, default is [1, N-2]. | |
indtype | _start [6][3] |
marking for grid box memory limits for each field type and direction, default is [1, N-2]. | |
indtype | istart [6][3] |
marking grid box internal area (external border excluded) limits for each field type and direction, default is [1, N-2] | |
indtype | astart [6][3] |
marking for interpolation area (internal border included) | |
Vector_3 | origin |
Origin point of main grid. | |
Box | rbox |
Bounding region [origin+dx/4, origin+nx*dx-dx/4], where nx is dimension supplied in constructor. | |
int | first_updated_field |
grids for different field types | |
int | builtin_pbc |
Bit flags specifying that periodic boudary conditions are intrinsically built in for this mesh block (in the Step procedue). | |
int | builtin_transfers |
If not zero, means that all transfers (both for boundaries and MPI) are intrinsically built in for this mesh block (in the Step procedue). | |
Base Yee block supporting contour fixes for per-contour updates.
|
inline |
Switch between contour and layer fixes.