Electromagnetic Template Library (EMTL)
Loading...
Searching...
No Matches
emFixSourceTFSF< source_t > Class Template Reference

Class packer for TF/SF fix. More...

#include <tfsf.h>

Inheritance diagram for emFixSourceTFSF< source_t >:
Collaboration diagram for emFixSourceTFSF< source_t >:

Public Member Functions

void set_output_ptr (EmtypePtr_t optr) override
 Specify pointer at the data array where TF/SF fix will be applied.
 
virtual int record (indtype ind, emtype coef, const Vector_3 &pos, int field, const Vector_3 &fdir, bool first_upd_field, valtype tshift) override
 Record array index ind, where fix will be applied, coefficient coef, accompanied this fix, position pos where corresponding incident wave is taken (projection fdir of the incident field).
 
virtual ptrdiff_t store_fix (emFixStorage &fs, const indtype &ref_ind, bool first_upd_field) override
 Record collected cell data into fix storage and clears packs.
 
virtual void apply_fix (emFixStorage &fs, emtype *dptr, int adv_timestep, std::ptrdiff_t &fix_ind) const override
 Record collected cell data into fix storage and clears packs.
 
virtual int get_record_data (valtype &distance, emtype &coef, const Vector_3 &pos, int field, const Vector_3 &fdir) override
 Gets distance from source and coefficient: primary recordable TFSF data per contour.
 
virtual void step () override
 Make one time step (including possible step for the incident source).
 
time_profile_tset_time_profile (time_profile_t *tprof_, int managed=0) override
 Resets the time profile, if managed =1, the pointer is managed (deleted) by current object.
 

Additional Inherited Members

- Protected Attributes inherited from emFixTFSF
mngptr< time_profile_ttprof
 Time profile in space (for Hyperconic simulations)
 

Detailed Description

template<class source_t>
class emFixSourceTFSF< source_t >

Class packer for TF/SF fix.

This class contains two packers:

  1. Packer for the incident wave, derived from emSourceWavePacker (source_t::packer_t pack1)
  2. Packer of indices and coefficients to apply the fix (emFixCoefs pack2).

Work with this class assumes 2 stages:

  1. Record fix (function record). At this stage you need to specify pointer at the data array where fix will be applied (function set_output_ptr)
  2. Apply fix at the each calculation step (function step)

Member Function Documentation

◆ record()

template<class source_t >
virtual int emFixSourceTFSF< source_t >::record ( indtype  ind,
emtype  coef,
const Vector_3 &  pos,
int  field,
const Vector_3 &  fdir,
bool  first_upd_field,
valtype  tshift 
)
inlineoverridevirtual

Record array index ind, where fix will be applied, coefficient coef, accompanied this fix, position pos where corresponding incident wave is taken (projection fdir of the incident field).

Parameters
first_upd_fieldif true, specifies that H field is updated first on the mesh Выполняется на стадии записи поправки.

Implements emFixTFSF.

◆ set_time_profile()

template<class source_t >
time_profile_t * emFixSourceTFSF< source_t >::set_time_profile ( time_profile_t tprof_,
int  managed = 0 
)
inlineoverridevirtual

Resets the time profile, if managed =1, the pointer is managed (deleted) by current object.

Returns
the previous value

Reimplemented from emFixTFSF.


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