|
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.