Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Data Types | Modules | Macros | Functions/Subroutines
sll_m_maxwell_2d_pstd.F90 File Reference
#include "sll_fftw.h"
#include "sll_memory.h"
#include "sll_working_precision.h"
#include "sll_maxwell_solvers_macros.h"
Include dependency graph for sll_m_maxwell_2d_pstd.F90:

Go to the source code of this file.

Data Types

type  sll_t_maxwell_2d_pstd
 Maxwell solver object. More...
 

Modules

module  sll_m_maxwell_2d_pstd
 Implements the Maxwell solver in 2D with periodic boundary conditions with PSTD method.
 

Macros

#define D_DX(FIELD)
 
#define D_DY(FIELD)
 

Functions/Subroutines

subroutine, public sll_s_maxwell_2d_pstd_init (self, xmin, xmax, nc_x, ymin, ymax, nc_y, polarization)
 Solve maxwell solver 2d cartesian periodic with PSTD scheme. More...
 
subroutine, public sll_s_solve_maxwell_2d_pstd (self, fx, fy, fz, dt)
 self routine exists only for testing purpose. Use ampere and faraday in your appication. More...
 
subroutine, public sll_s_solve_faraday_2d_pstd (self, fx, fy, fz, dt)
 Solve Faraday equation. More...
 
subroutine, public sll_s_solve_ampere_2d_pstd (self, fx, fy, fz, dt, sx, sy)
 
subroutine faraday_tm_2d_pstd (self, hx, hy, ez, dt)
 Solve faraday equation (hx,hy,ez) More...
 
subroutine faraday_te_2d_pstd (self, ex, ey, hz, dt)
 Solve faraday equation (ex,ey,hz) More...
 
subroutine ampere_tm_2d_pstd (self, hx, hy, ez, dt, jz)
 Solve ampere maxwell equation (hx,hy,ez) More...
 
subroutine ampere_te_2d_pstd (self, ex, ey, hz, dt, jx, jy)
 Solve ampere maxwell equation (ex,ey,hz) More...
 
subroutine, public sll_s_free_maxwell_2d_pstd (self)
 delete maxwell solver object More...
 

Macro Definition Documentation

◆ D_DX

#define D_DX (   FIELD)
Value:
1 self%d_dx = field; \
2 call sll_s_fft_exec_r2c_1d(self%fwx, self%d_dx, self%tmp_x); \
3 self%tmp_x(2:nc_x/2 + 1) = -cmplx(0.0_f64, self%kx(2:nc_x/2 + 1), kind=f64)*self%tmp_x(2:nc_x/2 + 1); \
4 call sll_s_fft_exec_c2r_1d(self%bwx, self%tmp_x, self%d_dx); \
5 self%d_dx = self%d_dx/nc_x

◆ D_DY

#define D_DY (   FIELD)
Value:
1 self%d_dy = field; \
2 call sll_s_fft_exec_r2c_1d(self%fwy, self%d_dy, self%tmp_y); \
3 self%tmp_y(2:nc_y/2 + 1) = -cmplx(0.0_f64, self%ky(2:nc_y/2 + 1), kind=f64)*self%tmp_y(2:nc_y/2 + 1); \
4 call sll_s_fft_exec_c2r_1d(self%bwy, self%tmp_y, self%d_dy); \
5 self%d_dy = self%d_dy/nc_y
    Report Typos and Errors