|
Electromagnetic Template Library (EMTL)
|
Class that provides exact fields at any given point and time for a set of point dipoles with specified location, direction and source impulse. More...
#include <radiation.h>


Public Member Functions | |
| emSourceDipolesExact (int fft_dir, mngarg< emImpulse > simpulse, const emMedium &med_, valtype dt_, bool j_source_=false) | |
| Dipoles set constructor. | |
| virtual int | GetFieldsShift () const override |
| Get the time shift between E and H fields in half time steps Default (analytic) wave has zero shift. | |
| int | AddDipole (int ftype, const Vector_3 &pos, const Vector_3 &len, valtype tshift) |
| add dipole to the set | |
| Vector_3 | GetField (int ftype, const Vector_3 &pos, int adv_hsteps=0, valtype tshift=0) |
| get the field of given type at given position and current time ADD THIS TO ALL BASE CLASSES! | |
| int | set_pos (const Vector_3 &pos) override |
| sets current vector (x or k) | |
| emFixTFSF * | get_packer (EmtypePtr_t data) override |
| used while packing tf/sf coeffs | |
Public Member Functions inherited from emSourceWave | |
| int | free_buffers () |
| Frees all buffer memory and the buffer array. | |
| void | reset_buffers () |
| Frees buffer memory and prepares the buffers to resize (when new range is set) | |
| virtual int | set_internal_range (valtype tf0_, valtype tf1_, valtype dtf_=-1) |
| sets the internal range for classes that accept any range default for base is [0, INFTY), WHICH WILL NOT ALLOW FFT! must set this for derived class to be able to do FFT classes that have predefined internal range must return -1 | |
| virtual int | set_range (valtype tf0_=1, valtype tf1_=0, valtype dtf_=-1) |
| sets t/f range and step for output: needed to optimize buffer usage when transformation is needed. | |
| virtual int | set_pos_it (int vi_) |
| sets current space iteration | |
| virtual int | set_tf (valtype tf) |
| sets current time variable: t or f depending on current working signature | |
| void | set_first_field (int field) |
| Sets the field to be updated first in leap-frog type source stepping. Used in TF/SF generated signals. | |
| virtual int | set_sync_hsteps (int sync_hsteps) |
| Sets the number of half time steps between synchronizations (for descrete LRNLA algorithms). | |
| virtual void | Step (int field) |
| To use from two-stage leap-frog timestepping. | |
| virtual void | set_cvfields (Vector_3 &Ere, Vector_3 &Hre, Vector_3 &Eim, Vector_3 &Him) |
| gets field using given time | |
Public Member Functions inherited from emComponent | |
| emDump * | GetEmDumper () |
| This function insures that the returned dumper is of true emDumper type. | |
Protected Attributes | |
| std::vector< emFilament > | dipoles [2] |
| dipoles | |
| std::vector< valtype > | tshifts [2] |
| phase shifts for dipoles | |
| Vector_3 | cpos |
| for checking buffer correspondance | |
| emtype | n |
| refractive index | |
| bool | j_source |
| analytic soft source term (true) versus TF/SF like source (warning: infinite at dipole location) | |
Protected Attributes inherited from emSourceWave | |
| int | ti |
| time iteration | |
| int | vi |
| for buffers numeration | |
| valtype | itf0 |
| internal/actual representation | |
| int | dt_fixed |
| value of dt is fixed for internal representation and cannot be changed by set_range for example, this is 1 for emSourcePlaneWaveGrid, where dt cannot be larger than mesh step | |
| int | fft_dir |
| specifies way of Fourier transformation | |
| int | bufnum |
| number of buffers | |
| int | fftdim |
| dimension for the fft transform (the same as all n), | |
| bool | buff_dim_ok |
| true used to indicate that the buffers are consitent with range | |
| int | first_upd_field |
| Type the field updated first during time stepping (1 is default for EMTL) | |
Additional Inherited Members | |
Protected Member Functions inherited from emSourceWave | |
| int | scatter_data (base_iterator< Vector_3 > *pos_it, int trav_request=-1) |
| scatters wave data from rank 0 to the buffers according to their ranks | |
| virtual int | step_tf () |
| make step with present dt/df (as in set_dt()) from current time and shifts current time | |
Class that provides exact fields at any given point and time for a set of point dipoles with specified location, direction and source impulse.
Requires impulse function evaluation at each get_field call.
|
inlineoverridevirtual |
Get the time shift between E and H fields in half time steps Default (analytic) wave has zero shift.
Grid wave has shift of -1 (-dt/2)
Reimplemented from emSourceWave.