Electromagnetic Template Library (EMTL)
Loading...
Searching...
No Matches
emYeeRectBlockFix Class Reference

Base Yee block supporting contour fixes for per-contour updates. More...

#include <yee.h>

Inheritance diagram for emYeeRectBlockFix:
Collaboration diagram for emYeeRectBlockFix:

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.
 

Static Public Attributes

static constexpr int c_USE_OPENMP_INIT
 Configuration flag for parallel initialization (contour analysis).
 
static constexpr int c_USE_CONETURS = 0
 Configuration flag for switching to LRnLA version.
 

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

Detailed Description

Base Yee block supporting contour fixes for per-contour updates.

Member Function Documentation

◆ use_contour_fixes()

bool emYeeRectBlockFix::use_contour_fixes ( bool  toggle)
inline

Switch between contour and layer fixes.

Returns
previous setting.

The documentation for this class was generated from the following file: