|
void | init (emMedium **meds, int meds_num, valtype dt) |
| calculate coefficients dr, lr, CE, CEp, Crot
|
|
void | record (valtype *Ca, valtype *Cb) |
| record point where fix is required
|
|
void | end_record () |
| complete point recording
|
|
void | ClearMesh () |
| fill Ep, Jlr, Jlrp with zero values
|
|
int | step_before (const iterator &data, emtype *out) |
| apply fix before basic update (see decsription in fix.h)
|
|
int | step_after (const iterator &data, emtype *out) |
| apply fix after basic update (see decsription in fix.h)
|
|
valtype | get_Ca0 () const |
|
valtype | get_Cb0 () const |
|
emtype | get_J (const iterator &data) |
|
|
int | rec_state |
| state flag (see general description in fix.h)
|
|
int | medsnum |
| number of media
|
|
int * | polesnum |
| array of the size 2*medsum for Drude / Lorentz terms number for each medium
|
|
lrcoeffs_t * | dr |
| coefficients for Drude and Lorentz currents update equation (see decsription to 'dispersion.h')
|
|
valtype | CE |
| coefficients for E field update equation
|
|
valtype | Ca0 |
| original (without account for dispersion) coefficients for E field update equation: E=Ca0*E+Cb0*rotH
|
|
size_t | nE |
| number of recorded points
|
|
size_t | nEp |
| 1 if we need to know E field at the previous step
|
|
size_t | nJ |
| number of currents at the current time step that we store
|
|
size_t | nJp |
| number of currents at the previous time step that we store
|
|
emtype * | Ep |
| arrays for the E field at the previous time step and for currents J at the current and previous time steps
|
|
Fix class for dispersive media described by Drude / Lorentz terms.
Work with this class assumes 3 stages:
- Intialization (function init) with reference on dispersive emMedium media meds (see medium.h), number of media meds_num, and time step dt. Resulted medium is a sum of all media meds (see medium.h). Coefficients in ADE numerical scheme are calculated from Drude / Lorentz parameters in media.
- Recording points where fix will be applied (function record). Function record returns coefficients Ca and Cb from basic FDTD update equation E=Ca*E+Cb*rotH, which is solved outside the fix class.
- Applying fix for recorded points using functions step_before and step_after.
This class manages arrays for Ep, J, Jp. Array for E is managed outside.