Post Processing
The PostProcessing module allows you to process the results of a DDA/CEMD calculation. Mostly for:
- Computing cross sections and emission patterns.
- Computing scattered fields.
- Computing local density of states (LDOS).
The list of functions and a description of how to use them is given in the following section. In general $N$ represents the number of dipoles.
Functions List and Documentation
Functions for Cross Sections and Emission Patterns
Main.CoupledElectricMagneticDipoles.PostProcessing.compute_cross_sections_e
— Methodcompute_cross_sections_e(knorm,kr,e_inc,alpha_e_dl,input_field;explicit_scattering=true,verbose=true)
Computes the extinction, absorbtion and scattering cross section $\sigma_{ext}$, $\sigma_{abs}$, $\sigma_{sca}$ of a system made out of electric dipoles, illuminated by a plane wave. Note that it should follow the optical theorem, i.e.
\[\sigma_{ext}=\sigma_{abs}+\sigma_{sca}\]
Arguments
knorm
: wave number in the medium.kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.e_inc
: 2D complex array of size $N\times 3$ containing the total incident electric field $\mathbf{E}_{i}$ on each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.input_field
: 2D complex array of size $N\times 3$ containing the input field $\mathbf{E}_0(\mathbf{r}_i)$ at the position of each dipole. Note that it must be a plane wave.explicit_scattering
: boolean that says whether to compute scttering cross section explicitely (true
) or to deduce it from the optical theorem (false
). By default set totrue
.verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- a float array of length 3 containing in order: extinction, absorption and scattering cross section. Cross sections are given in units of
knorm
^{-2}
`.
Main.CoupledElectricMagneticDipoles.PostProcessing.compute_cross_sections_e_m
— Methodcompute_cross_sections_e_m(knorm,kr,phi_inc,alpha_e_dl,alpha_m_dl,input_field;explicit_scattering=true,verbose=true)
Computes the extinction, absorbtion and scattering cross section $\sigma_{ext}$, $\sigma_{abs}$, $\sigma_{sca}$ of a system made out of electric and magnetic dipoles, illuminated by a plane wave. Note that it should follow the optical theorem, i.e.
\[\sigma_{ext}=\sigma_{abs}+\sigma_{sca}\]
Arguments
knorm
: wave number in the medium.kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.phi_inc
: 2D complex array of size $N\times 6$ containing the total incident electric and magnetic field $\mathbf{\Phi}_i=(\mathbf{E}_i,\mathbf{H}_i)$ on each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.alpha_m_dl
: complex dimensionless magnetic polarizability of each dipole. See the Alphas module documentation for accepted formats.input_field
: 2D complex array of size $N\times 6$ containing the electric and magnetic input field $\mathbf{\Phi}_0=(\mathbf{E}_0(\mathbf{r}_i),\mathbf{H}_0(\mathbf{r}_i))$ at the position of each dipole. Note that it should be a plane wave.explicit_scattering
: boolean that says whether to compute scttering cross section explicitely (true
) or to deduce it from the optical theorem (false
). By default set totrue
.verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- a float array of length 3 containing in order: extinction, absorption and scattering cross section. Cross sections are given in units of
knorm
^{-2}
`.
Main.CoupledElectricMagneticDipoles.PostProcessing.compute_cross_sections_e_m
— Methodcompute_cross_sections_e_m(knorm,kr,phi_inc,alpha_dl,input_field;explicit_scattering=true,verbose=true)
Same as compute_cross_sections_e_m(knorm,kr,phi_inc,alpha_e_dl,alpha_m_dl,input_field;explicit_scattering=true,verbose=true)
, but the electric and magnetic polarizabilities of each dipole are given by a single 6x6 complex matrix. See the Alphas module documentation for accepted formats.
Main.CoupledElectricMagneticDipoles.PostProcessing.diff_scattering_cross_section_e
— Methoddiff_scattering_cross_section_e(knorm,kr,e_inc,alpha_e_dl,input_field,ur;verbose=true)
Computes the differential scattering cross section $d \sigma_{sca}/ d\Omega$ of a system made out of electric dipoles in direction(s) ur
.
Arguments
knorm
: wave number in the medium.kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.e_inc
: 2D complex array of size $N\times 3$ containing the total incident electric field $\mathbf{E}_{i}$ on each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.input_field
: 2D complex array of size $N\times 3$ containing the electric input field $\mathbf{E}_0(\mathbf{r}_i)$ at the position of each dipole. Note that it should be a plane waveur
: 1D float vector of length 3 (only one direction) or 2D float array of size $Nu\times 3$ (more thant 1 directions) containing the directions $\mathbf{u_r}$ where the diffrential scattering cross section is computed. Note that these directions vectors are normalized to 1 in the function.verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- an array containing the differential cross section in each direction. Cross sections are given in units of
knorm
^{-2}
`.
Main.CoupledElectricMagneticDipoles.PostProcessing.diff_scattering_cross_section_e_m
— Methoddiff_scattering_cross_section_e_m(knorm,kr,phi_inc,alpha_e_dl,alpha_m_dl,input_field,ur;verbose=true)
Computes the differential scattering cross section $d \sigma_{sca}/ d\Omega$ of a system made out of electric and magnetic dipoles in direction(s) ur
.
Arguments
knorm
: wave number in the medium.kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.phi_inc
: 2D complex array of size $N\times 6$ containing the total incident electric and magnetic field $\mathbf{\Phi}_i=(\mathbf{E}_i,\mathbf{H}_i)$ on each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.alpha_m_dl
: complex dimensionless magnetic polarizability of each dipole. See the Alphas module documentation for accepted formats.input_field
: 2D complex array of size $N\times 6$ containing the electric and magnetic input field $\mathbf{\Phi}_0=(\mathbf{E}_0(\mathbf{r}_i),\mathbf{H}_0(\mathbf{r}_i))$ at the position of each dipole. Note that it should be a plane wave.ur
: 1D float vector of length 3 (only one direction) or 2D float array of size $Nu\times 3$ (more thant 1 directions) containing the dimensionless positions $\mathbf{u_r}$ where the diffrential scattering cross section is computed. Note that these directions vectors are normalized to 1 in the function.verbose
: whether to output pieces of information to the standard output during at runtime or not. By default set totrue
.
Outputs
- an array containing the differential cross section in each direction. Cross sections are given in units of
knorm
^{-2}
`.
Main.CoupledElectricMagneticDipoles.PostProcessing.diff_scattering_cross_section_e_m
— Methoddiff_scattering_cross_section_e_m(knorm,kr,phi_inc,alpha_dl,input_field,ur;verbose=true)
Same as diff_scattering_cross_section_e_m(knorm,kr,phi_inc,alpha_e_dl,alpha_m_dl,input_field,ur;verbose=true)
, but the electric and magnetic polarizabilities of each dipole are given by a single 6x6 complex matrix. See the Alphas module documentation for accepted formats.
Main.CoupledElectricMagneticDipoles.PostProcessing.emission_pattern_e
— Methodemission_pattern_e(kr,e_inc,alpha_e_dl,ur,krd,dip;verbose=true)
Computes the emission pattern $d P/ d\Omega$ (differential power emitted in a given direction) of a system made out of electric dipoles in direction(s) of position(s) krf
.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.e_inc
: 2D complex array of size $N\times 3$ containing the total incident electric field $\mathbf{E}_{i}$ on each dipole. The user is required to first solve the DDA problem fore_inc
in the presence of a point dipole source placed atkrd
.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.ur
: 1D float vector of length 3 (only one direction) or 2D float array of size $Nu\times 3$ (more thant 1 directions) containing the dimensionless positions $\mathbf{u_r}$ where the diffrential scattering cross section is computed. Note that these directions vectors are normalized to 1 in the function.krd
: float vector of length 3 containing the dimensionless position of the point electric dipole source.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively)
or complex array of size 3 with the components for the electric dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- an array containing the differential emitted power in directions
ur
in units of the power emitted by the emitter $P_0$ without any scatterers.
Main.CoupledElectricMagneticDipoles.PostProcessing.emission_pattern_e_m
— Methodemission_pattern_e_m(kr,phi_inc,alpha_e_dl,alpha_m_dl,ur,krd,dip;verbose=true)
Computes the emission pattern $d \P/ d\Omega$ of a system made out of electric and magnetic dipoles in direction(s) of position(s) krf
.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.phi_inc
: 2D complex array of size $N\times 6$ containing the total incident electric and magnetic field $\mathbf{\Phi}_i=(\mathbf{E}_i,\mathbf{H}_i)$ on each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.alpha_m_dl
: complex dimensionless magnetic polarizability of each dipole. See the Alphas module documentation for accepted formats.ur
: 1D float vector of length 3 (only one direction) or 2D float array of size $Nu\times 3$ (more thant 1 directions) containing the dimensionless positions $\mathbf{u_r}$ where the diffrential scattering cross section is computed. Note that these directions vectors are normalized to 1 in the function.krd
: float vector of length 3 containing the dimensionless position of the point electric and/or magnetic dipole source.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively anddip = 4,5,6
is a magnetic dipole along x,y,z respectively)
or complex array of size 6 with the first 3 components for the electric dipole moment and the last 3 components for the magnetic dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- an array containing the differential emitted power in directions
ur
in units of the power emitted by the emitter $P_0$ without any scatterers.
Main.CoupledElectricMagneticDipoles.PostProcessing.emission_pattern_e_m
— Methodemission_pattern_e_m(kr,phi_inc,alpha_dl,ur,krd,dip;verbose=true)
Same as emission_pattern_e_m(kr,phi_inc,alpha_e_dl,alpha_m_dl,ur,krd,dip;verbose=true)
, but the electric and magnetic polarizabilities of each dipole are given by a single 6x6 complex matrix. See the Alphas module documentation for accepted formats.
Functions for Scattered Fields
Main.CoupledElectricMagneticDipoles.PostProcessing.field_sca_e
— Methodfunction field_sca_e(kr, alpha_e_dl, e_inc, krf)
Computes the scattered field from a system made out of electric dipoles. Note that the term $e^{ikr}/kr$ is retained, so krf
has to be finite.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.e_inc
: 2D complex array of size $N\times 3$ containing the total incident electric field $\mathbf{E}_{i}$ on each dipole.krf
: 1D float vector of length 3 (only one position) or 2D float array of size $Nu\times 3$ (more thant 1 position) containing the dimensionless positions $k\mathbf{r}_f$ at which the scattered field is computed.verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
field_r
: 2D complex array of size $Nf\times 6$ containing the scattered electric and magnetic fields by the dipoles at every $k\mathbf{r_f}$. Note that the term $e^{ikr}/kr$ is retained, sokrf
has to be finite.
Main.CoupledElectricMagneticDipoles.PostProcessing.field_sca_e_m
— Methodfield_sca_e_m(kr, alpha_e_dl, alpha_m_dl, phi_inc, krf; verbose=true)
Computes the scattered field from a system made out of electric and magnetic dipoles.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.alpha_m_dl
: complex dimensionless magnetic polarizability of each dipole. See the Alphas module documentation for accepted formats.phi_inc
: 2D complex array of size $N\times 6$ containing the total incident electric and magnetic field $\mathbf{\Phi}_i=(\mathbf{E}_i,\mathbf{H}_i)$ on each dipole.krf
: 1D float vector of length 3 (only one position) or 2D float array of size $Nu\times 3$ (more thant 1 position) containing the dimensionless positions $k\mathbf{r}_f$ at which the scattered field is computed.verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
field_r
: 2D complex array of size $Nf\times 6$ containing the scattered electric and magnetic fields by the dipoles at every $k\mathbf{r_f}$.
Main.CoupledElectricMagneticDipoles.PostProcessing.field_sca_e_m
— Methodfield_sca_e_m(kr, alpha_dl, phi_inc, krf)
Same as field_sca_e_m(kr, alpha_e_dl, alpha_m_dl, phi_inc, krf)
, but the electric and magnetic polarizabilities of each dipole are given by a single 6x6 complex matrix. See the Alphas module documentation for accepted formats.
Main.CoupledElectricMagneticDipoles.PostProcessing.far_field_sca_e
— Methodfunction far_field_sca_e(kr,e_inc,alpha_e_dl,krf)
Computes the scattered field from a system made out of electric dipoles in the far field approximation. Note that the term $e^{ikr}/kr$ is retained, so krf
has to be finite.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole. Note that these positions have to be far away from the dipoles positions.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.e_inc
: 2D complex array of size $N\times 3$ containing the incident electric field $\mathbf{E}_{i}$ on each dipole.krf
: 1D float vector of length 3 (only one position) or 2D float array of size $Nu\times 3$ (more thant 1 position) containing the dimensionless positions $k\mathbf{r}_f$ at which the scattered field is computed.
Outputs
field_r
: 2D complex array of size $Nf\times 6$ containing the scattered field by the dipoles at every $k\mathbf{r_f}$. Note that the term $e^{ikr}/kr$ is retained, sokrf
has to be finite.
Main.CoupledElectricMagneticDipoles.PostProcessing.far_field_sca_e_m
— Methodfunction far_field_sca_e_m(kr,e_inc,alpha_e_dl,alpha_m_dl,krf)
Computes the scattered field from a system made out of electric and magnetic dipoles in the far field approximation. Note that the term $e^{ikr}/kr$ is retained, so krf
has to be finite.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole. Note that these positions have to be far away from the dipoles positions.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.alpha_m_dl
: complex dimensionless magnetic polarizability of each dipole. See the Alphas module documentation for accepted formats.phi_inc
: 2D complex array of size $N\times 6$ containing the incident electric and magnetic field $\mathbf{\Phi}_i=(\mathbf{E}_i,\mathbf{H}_i)$ on each dipole.krf
: 1D float vector of length 3 (only one position) or 2D float array of size $Nu\times 3$ (more thant 1 position) containing the dimensionless positions $k\mathbf{r}_f$ at which the scattered field is computed.
Outputs
field_r
: 2D complex array of size $Nf\times 6$ containing the scattered field by the dipoles at every $k\mathbf{r_f}$. Note that the term $e^{ikr}/kr$ is retained, sokrf
has to be finite.
Main.CoupledElectricMagneticDipoles.PostProcessing.far_field_sca_e_m
— Methodfunction far_field_sca_e_m(kr,e_inc,alpha_dl,krf)
Same as far_field_sca_e_m(kr, alpha_e_dl, alpha_m_dl, phi_inc, krf)
, but the electric and magnetic polarizabilities of each dipole are given by a single 6x6 complex matrix. See the Alphas module documentation for accepted formats.
Functions for LDOS
Main.CoupledElectricMagneticDipoles.PostProcessing.ldos_e
— Methodldos_e(kr, alpha_e_dl, Ainv, krd; dip=nothing, verbose=true)
It Computes local density of states (LDOS) of a system made out of electric dipoles normalized by the LDOS in the host medium without scatterers.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.Ainv
: (inverse) DDA matrix.krd
: 2D float array of size $Nd\times 3$ containing the dimentionless positions $k\mathbf{r_d}$ where the LDOS is calculated.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively)
or complex array of size 3 with the components for the electric dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
LDOS
: float array with the LDOS normalized by the LDOS in the host medium without scatterers.
Main.CoupledElectricMagneticDipoles.PostProcessing.ldos_e_m
— Methodldos_e_m(kr, alpha_e_dl, alpha_m_dl, Ainv, krd; dip=nothing, verbose=true)
Computes local density of states (LDOS) of a system made out of electric and magnetic dipoles normalized by the LDOS in the host medium without scatterers.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.alpha_e_dl
: complex dimensionless electric polarizability of each dipole. See the Alphas module documentation for accepted formats.alpha_m_dl
: complex dimensionless magnetic polarizability of each dipole. See the Alphas module documentation for accepted formats.Ainv
: (inverse) CEMD matrix.krd
: 2D float array of size $Nd\times 3$ containing the dimentionless positions $k\mathbf{r_d}$ where the LDOS is calculated.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively anddip = 4,5,6
is a magnetic dipole along x,y,z respectively)
or complex array of size 6 with the first 3 components for the electric dipole moment and the last 3 components for the magnetic dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
LDOS
: float array with the LDOS normalized by the LDOS in the host medium without scatterers.
Main.CoupledElectricMagneticDipoles.PostProcessing.ldos_e_m
— Methodldos_e_m(kr, alpha_dl, Ainv, krd; dip=nothing, verbose=true)
Same as ldos_e_m(kr, alpha_e_dl, alpha_m_dl, Ainv, krd; dip=nothing, verbose=true)
, but the electric and magnetic polarizabilities of each dipole are given by a single 6x6 complex matrix. See the Alphas module documentation for accepted formats.
Main.CoupledElectricMagneticDipoles.PostProcessing.rad_ldos_e
— Methodrad_ldos_e(kr,krd,p,dip;verbose=true)
Computes the radiative part of the LDOS of a system of electric point dipoles scatterers normalized by the LDOS in the host medium without scatterers.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.krd
: float array of size 3 containing the dimentionless position $k\mathbf{r_d}$ where the radiative part of the LDOS is calculated.p
: 2D complex array of size$Nd\times 3$ containing the electric dipole moments of the dipoles.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively)
or complex array of size 3 with the components for the electric dipole moment.
verbose
: whether to output pieces of information to the standard output during running or not. By default set totrue
.
Outputs
- float containing the normalized (by the LDOS in the host medium without scatterers) radiative LDOS at the position
krd
.
Main.CoupledElectricMagneticDipoles.PostProcessing.rad_ldos_e_m
— Methodrad_ldos_e_m(kr,krd,p,m,dip;verbose=true)
Computes the radiative part of the LDOS of a system of electric and magnetic point dipoles scatterers normalized by the LDOS in the host medium without scatterers.
Arguments
kr
: 2D float array of size $N\times 3$ containing the dimensionless position $k\mathbf{r}$ of each dipole.krd
: float array of size 3 containing the dimentionless position $k\mathbf{r_d}$ where the LDOS is calculated.p
: 2D complex array of size$Nd\times 3$ containing the electric dipole moments of the dipoles.m
: 2D complex array of size$Nd\times 3$ containing the magnetic dipole moments of the dipoles.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively anddip = 4,5,6
is a magnetic dipole along x,y,z respectively)
or complex array of size 6 with the first 3 components for the electric dipole moment and the last 3 components for the magnetic dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- float containing the normalized (by the LDOS in the host medium without scatterers) radiative LDOS at the position
krd
.
Main.CoupledElectricMagneticDipoles.PostProcessing.nonrad_ldos_e
— Methodnonrad_ldos_e(p,e_inc,dip;verbose=true)
Computes the non-radiative part of the LDOS of a system of electric point dipoles scatterers normalized by the LDOS in the host medium without scatterers. Note that the scattering problem has to be solved previously using a point dipole source as input field.
Arguments
p
: 2D complex array of size$Nd\times 3$ containing the electric dipole moments of the dipoles. It has to be previously computed by one of the DDACore functions andcompute_dipole_moment
.e_inc
: 2D complex array of size $N\times 3$ containing the total incident electric field $\mathbf{E}_{i}$ on each dipole. It has to be previously computed by one of the DDACore functions, setting the input field to be a point dipole source.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively)
or complex array of size 3 with the components for the electric dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- float array containing the normalized non-radiative LDOS at everey position of
krd
.
Main.CoupledElectricMagneticDipoles.PostProcessing.nonrad_ldos_e_m
— Methodnonrad_ldos_e_m(p,m,phi_inc,dip;verbose=true)
Computes the non-radiative part of the LDOS of a system of electric and magnetic point dipoles scatterers normalized by the LDOS in the host medium without scatterers. Note that the scattering problem has to be solved previously using a point dipole source as input field.
Arguments
p
: 2D complex array of size$Nd\times 3$ containing the electric dipole moments of the dipoles. It has to be previously computed by one of the DDACore functions andcompute_dipole_moment
.m
: 2D complex array of size$Nd\times 3$ containing the magnetic dipole moments of the dipoles. It has to be previously computed by one of the DDACore functions, setting the input field to be a point dipole source.phi_inc
: 2D complex array of size $N\times 6$ containing the total incident electric and magnetic field $\mathbf{\Phi}_i=(\mathbf{E}_i,\mathbf{H}_i)$ on each dipole.dip
: integer defining the dipole moment (dip = 1,2,3
is an electric dipole along x,y,z respectively anddip = 4,5,6
is a magnetic dipole along x,y,z respectively)
or complex array of size 6 with the first 3 components for the electric dipole moment and the last 3 components for the magnetic dipole moment.
verbose
: whether to output pieces of information to the standard output at runtime or not. By default set totrue
.
Outputs
- 1D float array containing the normalized non-radiative LDOS at everey position of
krd
.
Utilities Functions
Main.CoupledElectricMagneticDipoles.PostProcessing.compute_dipole_moment
— Methodcompute_dipole_moment(alpha,phi_inc)
Computes the dipole moment (magnetic or electric) of a dipole with polarizability alpha
under an incident field phi_inc
. alpha
can be:
- a complex scalar
- a 1D complex array of size $N$
- a $3\times 3$ or $6\times 6$ complex matrix.
- a 3D complex array of size $N\times 3\times 3$ or $N\times 6\times 6$
Main.CoupledElectricMagneticDipoles.PostProcessing.poynting_vector
— Methodpoynting_vector(phi)
Computes the poynting vector of an electromagnetic field. Input is an electric and magnetic field phi
(1D complex Array of length 6). Outputs a 1D float array of length 3 in units of electriqc field squared.