|
WarpX
|
Go to the source code of this file.
Functions | |
| AMREX_GPU_HOST_DEVICE AMREX_INLINE void | calc_M (amrex::Real arr[], amrex::Real ex, amrex::Real ey, amrex::Real ez, amrex::Real bx, amrex::Real by, amrex::Real bz, amrex::Real xi_c2, amrex::Real c2) |
| AMREX_GPU_HOST_DEVICE AMREX_INLINE void | warpx_hybrid_QED_push (int j, int k, int l, amrex::Array4< amrex::Real > const &Ex, amrex::Array4< amrex::Real > const &Ey, amrex::Array4< amrex::Real > const &Ez, amrex::Array4< amrex::Real > const &Bx, amrex::Array4< amrex::Real > const &By, amrex::Array4< amrex::Real const > const &Bz, amrex::Array4< amrex::Real > const &tmpEx, amrex::Array4< amrex::Real > const &tmpEy, amrex::Array4< amrex::Real > const &tmpEz, amrex::Array4< amrex::Real > const &Jx, amrex::Array4< amrex::Real > const &Jy, amrex::Array4< amrex::Real > const &Jz, const amrex::Real dx, const amrex::Real dy, const amrex::Real dz, const amrex::Real dt, const amrex::Real xi_c2) |
| AMREX_GPU_HOST_DEVICE AMREX_INLINE void calc_M | ( | amrex::Real | arr[], |
| amrex::Real | ex, | ||
| amrex::Real | ey, | ||
| amrex::Real | ez, | ||
| amrex::Real | bx, | ||
| amrex::Real | by, | ||
| amrex::Real | bz, | ||
| amrex::Real | xi_c2, | ||
| amrex::Real | c2 ) |
calc_M calculates the Magnetization field of the vacuum at a specific point and returns it as a three component vector
| [in] | arr | This is teh empty array that will be filled with the components of the M-field |
| [in] | ex | The x-component of the E-field at the point at which the M-field is to be calculated |
| [in] | ey | The y-component of the E-field at the point at which the M-field is to be calculated |
| [in] | ez | The z-component of the E-field at the point at which the M-field is to be calculated |
| [in] | bx | The x-component of the B-field at the point at which the M-field is to be calculated |
| [in] | by | The y-component of the B-field at the point at which the M-field is to be calculated |
| [in] | bz | The z-component of the B-field at the point at which the M-field is to be calculated |
| [in] | xi_c2 | The quantum parameter * c2 being used for the simulation |
| [in] | c2 | the speed of light squared |
| AMREX_GPU_HOST_DEVICE AMREX_INLINE void warpx_hybrid_QED_push | ( | int | j, |
| int | k, | ||
| int | l, | ||
| amrex::Array4< amrex::Real > const & | Ex, | ||
| amrex::Array4< amrex::Real > const & | Ey, | ||
| amrex::Array4< amrex::Real > const & | Ez, | ||
| amrex::Array4< amrex::Real > const & | Bx, | ||
| amrex::Array4< amrex::Real > const & | By, | ||
| amrex::Array4< amrex::Real const > const & | Bz, | ||
| amrex::Array4< amrex::Real > const & | tmpEx, | ||
| amrex::Array4< amrex::Real > const & | tmpEy, | ||
| amrex::Array4< amrex::Real > const & | tmpEz, | ||
| amrex::Array4< amrex::Real > const & | Jx, | ||
| amrex::Array4< amrex::Real > const & | Jy, | ||
| amrex::Array4< amrex::Real > const & | Jz, | ||
| const amrex::Real | dx, | ||
| const amrex::Real | dy, | ||
| const amrex::Real | dz, | ||
| const amrex::Real | dt, | ||
| const amrex::Real | xi_c2 ) |
warpx_hybrid_QED_push uses an FDTD scheme to calculate QED corrections to Maxwell's equations and preforms a half timestep correction to the E-fields
| [in] | j | mesh index |
| [in] | k | mesh index |
| [in] | l | mesh index |
| [in,out] | Ex | This function modifies the Ex field at the end |
| [in,out] | Ey | This function modifies the Ey field at the end |
| [in,out] | Ez | This function modifies the Ez field at the end |
| [in] | Bx | The QED corrections are non-linear functions of B. However, they do not modify B itself |
| [in] | By | The QED corrections are non-linear functions of B. However, they do not modify B itself |
| [in] | Bz | The QED corrections are non-linear functions of B. However, they do not modify B itself |
| [in] | tmpEx | Since the corrections to E at a given node are non-linear functions of the values of E on the surronding nodes, temp arrays are used so that modifications to one node do not influence the corrections to the surronding nodes |
| [in] | tmpEy | Since the corrections to E at a given node are non-linear functions of the values of E on the surronding nodes, temp arrays are used so that modifications to one node do not influence the corrections to the surronding nodes |
| [in] | tmpEz | Since the corrections to E at a given node are non-linear functions of the values of E on the surronding nodes, temp arrays are used so that modifications to one node do not influence the corrections to the surronding nodes |
| [in] | Jx | the current field in x |
| [in] | Jy | the current field in y |
| [in] | Jz | the current field in z |
| [in] | dx | The x spatial step, used for calculating curls |
| [in] | dy | The y spatial step, used for calculating curls |
| [in] | dz | The z spatial step, used for calculating curls |
| [in] | dt | The temporal step, used for the half push/correction to the E-fields at the end of the function |
| [in] | xi_c2 | Quantum parameter * c**2 |