PyPO User Manual
InterfaceCPU.h File Reference

Declarations of PO and RT library for CPU. More...

#include <iostream>
#include <vector>
#include <complex>
#include <cmath>
#include <string>
#include "Propagation.h"
#include "RayTrace.h"

Go to the source code of this file.

Functions

PYPO_DLL void propagateToGrid_JM (c2Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
 
PYPO_DLL void propagateToGrid_EH (c2Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
 
PYPO_DLL void propagateToGrid_JMEH (c4Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
 
PYPO_DLL void propagateToGrid_EHP (c2rBundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
 
PYPO_DLL void propagateToGrid_scalar (arrC1 *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, arrC1 *field, double k, int numThreads, double epsilon, double t_direction)
 
PYPO_DLL void propagateToFarField (c2Bundle *res, reflparams source, reflparams target, reflcontainer *cs, reflcontainer *ct, c2Bundle *currents, double k, int numThreads, double epsilon, double t_direction)
 
PYPO_DLL void propagateRays (reflparams ctp, cframe *fr_in, cframe *fr_out, int numThreads, double epsilon, double t0)
 
PYPO_DLL void propagateToGridf_JM (c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
 
PYPO_DLL void propagateToGridf_EH (c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
 
PYPO_DLL void propagateToGridf_JMEH (c4Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
 
PYPO_DLL void propagateToGridf_EHP (c2rBundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
 
PYPO_DLL void propagateToGridf_scalar (arrC1f *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, arrC1f *field, float k, int numThreads, float epsilon, float t_direction)
 
PYPO_DLL void propagateToFarFieldf (c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, int numThreads, float epsilon, float t_direction)
 

Detailed Description

Declarations of PO and RT library for CPU.

Provides double and single precision interface for CPU PO and RT.

Function Documentation

◆ propagateRays()

PYPO_DLL void propagateRays ( reflparams  ctp,
cframe fr_in,
cframe fr_out,
int  numThreads,
double  epsilon,
double  t0 
)

Calculate ray-trace frame on surface.

Calculate the ray-trace frame on a surface.

Parameters
ctpreflparams object of target surface.
fr_inPointer to cframe object containing input frame.
fr_outPointer to cframe object, to be filled with result frame.
numThreadsNumber of computing threads to employ.
epsilonNumerical accuracy of NR method.
t0Initial value to try in NR method.
See also
reflparams
cframe

◆ propagateToFarField()

PYPO_DLL void propagateToFarField ( c2Bundle res,
reflparams  source,
reflparams  target,
reflcontainer cs,
reflcontainer ct,
c2Bundle currents,
double  k,
int  numThreads,
double  epsilon,
double  t_direction 
)

Calculate EH on far-field surface.

Calculate the E, H fields on a far-field surface.

Parameters
resPointer to c2Bundle object.
sourcereflparams object, source surface.
targetrefparams object, target surface.
csPointer to reflcontainer, source surface.
ctPointer to reflcontainer, target surface.
currentsPointer to c2Bundle containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2Bundle
reflparams
reflcontainer

◆ propagateToFarFieldf()

PYPO_DLL void propagateToFarFieldf ( c2Bundlef res,
reflparamsf  source,
reflparamsf  target,
reflcontainerf cs,
reflcontainerf ct,
c2Bundlef currents,
float  k,
int  numThreads,
float  epsilon,
float  t_direction 
)

Calculate E, H on a far-field surface.

Calculate the E, H fields on a far-field surface.

Parameters
resPointer to c2Bundlef object.
sourcereflparamsf object, source surface.
targetrefparamsf object, target surface.
csPointer to reflcontainerf, source surface.
ctPointer to reflcontainerf, target surface.
currentsPointer to c2Bundlef containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2Bundlef
reflparamsf
reflcontainerf

◆ propagateToGrid_EH()

PYPO_DLL void propagateToGrid_EH ( c2Bundle res,
reflparams  source,
reflparams  target,
reflcontainer cs,
reflcontainer ct,
c2Bundle currents,
double  k,
int  numThreads,
double  epsilon,
double  t_direction 
)

Calculate EH on surface.

Calculate the E and H fields on a surface.

Parameters
resPointer to c2Bundle object.
sourcereflparams object, source surface.
targetrefparams object, target surface.
csPointer to reflcontainer, source surface.
ctPointer to reflcontainer, target surface.
currentsPointer to c2Bundle containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2Bundle
reflparams
reflcontainer

◆ propagateToGrid_EHP()

PYPO_DLL void propagateToGrid_EHP ( c2rBundle res,
reflparams  source,
reflparams  target,
reflcontainer cs,
reflcontainer ct,
c2Bundle currents,
double  k,
int  numThreads,
double  epsilon,
double  t_direction 
)

Calculate EH and P on surface.

Calculate the reflected E, H fields and P, the reflected Poynting vector field, on a surface.

Parameters
resPointer to c2rBundle object.
sourcereflparams object, source surface.
targetrefparams object, target surface.
csPointer to reflcontainer, source surface.
ctPointer to reflcontainer, target surface.
currentsPointer to c2Bundle containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2rBundle
reflparams
reflcontainer
c2Bundle

◆ propagateToGrid_JM()

PYPO_DLL void propagateToGrid_JM ( c2Bundle res,
reflparams  source,
reflparams  target,
reflcontainer cs,
reflcontainer ct,
c2Bundle currents,
double  k,
int  numThreads,
double  epsilon,
double  t_direction 
)

Calculate JM on surface.

Calculate the J and M currents on a surface.

Parameters
resPointer to c2Bundle object.
sourcereflparams object, source surface.
targetrefparams object, target surface.
csPointer to reflcontainer, source surface.
ctPointer to reflcontainer, target surface.
currentsPointer to c2Bundle containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2Bundle
reflparams
reflcontainer

◆ propagateToGrid_JMEH()

PYPO_DLL void propagateToGrid_JMEH ( c4Bundle res,
reflparams  source,
reflparams  target,
reflcontainer cs,
reflcontainer ct,
c2Bundle currents,
double  k,
int  numThreads,
double  epsilon,
double  t_direction 
)

Calculate JM and EH on surface.

Calculate the J, M currents and E, H fields on a surface.

Parameters
resPointer to c4Bundle object.
sourcereflparams object, source surface.
targetrefparams object, target surface.
csPointer to reflcontainer, source surface.
ctPointer to reflcontainer, target surface.
currentsPointer to c2Bundle containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c4Bundle
reflparams
reflcontainer
c2Bundle

◆ propagateToGrid_scalar()

PYPO_DLL void propagateToGrid_scalar ( arrC1 res,
reflparams  source,
reflparams  target,
reflcontainer cs,
reflcontainer ct,
arrC1 field,
double  k,
int  numThreads,
double  epsilon,
double  t_direction 
)

Calculate scalar field on surface.

Calculate the incoming scalar field on a surface.

Parameters
resPointer to arrC1 object.
sourcereflparams object, source surface.
targetrefparams object, target surface.
csPointer to reflcontainer, source surface.
ctPointer to reflcontainer, target surface.
fieldPointer to arrC1 containing field on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
arrC1
reflparams
reflcontainer

◆ propagateToGridf_EH()

PYPO_DLL void propagateToGridf_EH ( c2Bundlef res,
reflparamsf  source,
reflparamsf  target,
reflcontainerf cs,
reflcontainerf ct,
c2Bundlef currents,
float  k,
int  numThreads,
float  epsilon,
float  t_direction 
)

Calculate EH on surface.

Calculate the E, H fields on a surface.

Parameters
resPointer to c2Bundlef object.
sourcereflparamsf object, source surface.
targetrefparamsf object, target surface.
csPointer to reflcontainerf, source surface.
ctPointer to reflcontainerf, target surface.
currentsPointer to c2Bundlef containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2Bundlef
reflparamsf
reflcontainerf

◆ propagateToGridf_EHP()

PYPO_DLL void propagateToGridf_EHP ( c2rBundlef res,
reflparamsf  source,
reflparamsf  target,
reflcontainerf cs,
reflcontainerf ct,
c2Bundlef currents,
float  k,
int  numThreads,
float  epsilon,
float  t_direction 
)

Calculate EH and P on surface.

Calculate the reflected E, H fields and P, the reflected Poynting vector field, on a surface.

Parameters
resPointer to c2rBundlef object.
sourcereflparamsf object, source surface.
targetrefparamsf object, target surface.
csPointer to reflcontainerf, source surface.
ctPointer to reflcontainerf, target surface.
currentsPointer to c2Bundlef containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2rBundlef
reflparamsf
reflcontainerf
c2Bundle

◆ propagateToGridf_JM()

PYPO_DLL void propagateToGridf_JM ( c2Bundlef res,
reflparamsf  source,
reflparamsf  target,
reflcontainerf cs,
reflcontainerf ct,
c2Bundlef currents,
float  k,
int  numThreads,
float  epsilon,
float  t_direction 
)

Calculate JM on surface.

Calculate the J and M currents on a surface.

Parameters
resPointer to c2Bundlef object.
sourcereflparamsf object, source surface.
targetrefparamsf object, target surface.
csPointer to reflcontainerf, source surface.
ctPointer to reflcontainerf, target surface.
currentsPointer to c2Bundlef containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c2Bundlef
reflparamsf
reflcontainerf

◆ propagateToGridf_JMEH()

PYPO_DLL void propagateToGridf_JMEH ( c4Bundlef res,
reflparamsf  source,
reflparamsf  target,
reflcontainerf cs,
reflcontainerf ct,
c2Bundlef currents,
float  k,
int  numThreads,
float  epsilon,
float  t_direction 
)

Calculate JM and EH on surface.

Calculate the J, M currents and E, H fields on a surface.

Parameters
resPointer to c4Bundlef object.
sourcereflparamsf object, source surface.
targetrefparamsf object, target surface.
csPointer to reflcontainerf, source surface.
ctPointer to reflcontainerf, target surface.
currentsPointer to c2Bundlef containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
c4Bundlef
reflparamsf
reflcontainerf
c2Bundlef

◆ propagateToGridf_scalar()

PYPO_DLL void propagateToGridf_scalar ( arrC1f res,
reflparamsf  source,
reflparamsf  target,
reflcontainerf cs,
reflcontainerf ct,
arrC1f field,
float  k,
int  numThreads,
float  epsilon,
float  t_direction 
)

Calculate scalar field on surface.

Calculate the incoming scalar field on a surface.

Parameters
resPointer to arrC1f object.
sourcereflparamsf object, source surface.
targetrefparamsf object, target surface.
csPointer to reflcontainerf, source surface.
ctPointer to reflcontainerf, target surface.
fieldPointer to arrC1f containing currents on source surface.
kWavenumber of radiation, in 1 / mm.
numThreadsNumber of computing threads to employ.
epsilonElectrical permittivity of source medium.
t_directionTime direction of beam (experimental!).
See also
arrC1f
reflparamsf
reflcontainerf