Electromagnetic Template Library (EMTL)
Loading...
Searching...
No Matches
emMeshContainer< block_t1, block_t2 > Class Template Reference

Template class alowing to fill space region with mesh blocks of up to 2 different types. More...

#include <meshcontainer.h>

Inheritance diagram for emMeshContainer< block_t1, block_t2 >:
Collaboration diagram for emMeshContainer< block_t1, block_t2 >:

Public Types

typedef emInterpPacker interp_packer_t
 aggregate interpolation type
 

Public Member Functions

Vector_3 get_position (int ind, int &ftype, Vector_3 &fdir)
 Gives space position of given memory index.
 
emtype GetField (const Vector_3 &pos, const Vector_3 &dir, int ftype)
 Gives field projection at given point.
 
int AddRankRegion (int rank, mngarg< SpaceRegion > extreg)
 Adds a region processed by processor with given rank.
 
int AddMediumRegion (const emMedium &med, mngarg< SpaceRegion > extreg, int level, bool confined=false)
 Adds a 3D region with constant media properties.
 
int AddMediumSurface (const emMedium &med, mngarg< FacetedSurfaceData > surf, bool confined=false)
 Adds a thin 2D surface with constant media properties.
 
int PrepareExplicit (valtype dt)
 Prepares the container for explicit timestepping.
 

Protected Member Functions

template<class bdescr_t >
size_t analyze_geometry (vector< bdescr_t * > &blocks0)
 Determines used/unused contours for local rank regions.
 
int StartTransfers (int field, valtype t)
 Transers the data between local blocks for border: 0=E, 1=H cells.
 
int CompleteTransfers (int field)
 finish external border transfers
 

Protected Attributes

xfer_t * xfer [2]
 global transfer packers
 
emMediumContainer media_tester
 tests the points for medium type
 
emMedium med_default
 default medium properties
 

Static Protected Attributes

static int idcount
 block id counter
 
static size_t indcount
 block size counter
 

Detailed Description

template<class block_t1, class block_t2>
class emMeshContainer< block_t1, block_t2 >

Template class alowing to fill space region with mesh blocks of up to 2 different types.

Member Function Documentation

◆ StartTransfers()

template<class block_t1 , class block_t2 >
int emMeshContainer< block_t1, block_t2 >::StartTransfers ( int  field,
valtype  t 
)
protected

Transers the data between local blocks for border: 0=E, 1=H cells.

Initializes MPI transfers between nonlocal blocks. Field is a field which will be updated (center point).


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