WarpX
WarpXWrappers.H
Go to the documentation of this file.
1 /* Copyright 2019 Andrew Myers, David Grote, Maxence Thevenet
2  * Remi Lehe, Weiqun Zhang
3  *
4  * This file is part of WarpX.
5  *
6  * License: BSD-3-Clause-LBNL
7  */
8 #ifndef WARPX_WRAPPERS_H_
9 #define WARPX_WRAPPERS_H_
10 
12 #include "Evolve/WarpXDtType.H"
13 #include <AMReX_Config.H>
14 #include <AMReX_REAL.H>
15 
16 #ifdef AMREX_USE_MPI
17 # include <mpi.h>
18 #endif
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24  int warpx_Real_size();
26 
27  int warpx_nSpecies();
28 
30 
32 
33  int warpx_nComps();
34 
35  int warpx_nCompsSpecies(const char* char_species_name);
36 
37  int warpx_SpaceDim();
38 
39  void amrex_init (int argc, char* argv[]);
40 
41 #ifdef AMREX_USE_MPI
42  void amrex_init_with_inited_mpi (int argc, char* argv[], MPI_Comm mpicomm);
43 #endif
44 
45  void amrex_finalize (int finalize_mpi);
46 
47  void warpx_init ();
48 
49  void warpx_finalize ();
50 
51  typedef void(*WARPX_CALLBACK_PY_FUNC_0)();
52 
66 
67  void warpx_evolve (int numsteps); // -1 means the inputs parameter will be used.
68 
69  void warpx_addNParticles(const char* char_species_name,
70  int lenx,
71  amrex::ParticleReal const * x,
72  amrex::ParticleReal const * y,
73  amrex::ParticleReal const * z,
74  amrex::ParticleReal const * vx,
75  amrex::ParticleReal const * vy,
76  amrex::ParticleReal const * vz,
77  int nattr,
78  amrex::ParticleReal const * attr,
79  int uniqueparticles);
80 
82 
83  void warpx_ReadBCParams();
84 
86 
87  amrex::Real warpx_getProbLo(int dir);
88 
89  amrex::Real warpx_getProbHi(int dir);
90 
91  long warpx_getNumParticles(const char* char_species_name);
92 
93  amrex::ParticleReal** warpx_getParticleStructs(
94  const char* char_species_name, int lev, int* num_tiles,
95  int** particles_per_tile);
96 
97  amrex::ParticleReal** warpx_getParticleArrays(
98  const char* char_species_name, const char* char_comp_name, int lev,
99  int* num_tiles, int** particles_per_tile);
100 
102  const char* char_species_name, const char* char_comp_name);
103 
104  void warpx_addRealComp(
105  const char* char_species_name, const char* char_comp_name, bool comm);
106 
107  int warpx_getParticleBoundaryBufferSize(const char* species_name, int boundary);
108 
110  const char* species_name, int boundary, int lev,
111  int* num_tiles, int** particles_per_tile);
112 
113  amrex::ParticleReal** warpx_getParticleBoundaryBuffer(
114  const char* species_name, int boundary, int lev,
115  int* num_tiles, int** particles_per_tile, const char* comp_name);
116 
118 
119  void warpx_ComputeDt ();
120  void warpx_MoveWindow (int step, bool move_j);
121 
122  void warpx_EvolveE (amrex::Real dt);
123  void warpx_EvolveB (amrex::Real dt, DtType a_dt_type);
124  void warpx_FillBoundaryE ();
125  void warpx_FillBoundaryB ();
126  void warpx_SyncCurrent ();
127  void warpx_UpdateAuxilaryData ();
128  void warpx_PushParticlesandDepose (amrex::Real cur_time);
129 
130  int warpx_getistep (int lev);
131  void warpx_setistep (int lev, int ii);
132  amrex::Real warpx_gett_new (int lev);
133  void warpx_sett_new (int lev, amrex::Real time);
134  amrex::Real warpx_getdt (int lev);
135 
136  int warpx_maxStep ();
137  amrex::Real warpx_stopTime ();
138 
139  int warpx_finestLevel ();
140 
141  int warpx_getMyProc ();
142  int warpx_getNProcs ();
143 
144 
145  void mypc_Redistribute ();
146 
147 #ifdef __cplusplus
148 }
149 #endif
150 
151 #endif
int warpx_getistep(int lev)
Definition: WarpXWrappers.cpp:584
DtType
Definition: WarpXDtType.H:10
void warpx_set_callback_py_afterdeposition(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:197
amrex::Real warpx_gett_new(int lev)
Definition: WarpXWrappers.cpp:592
amrex::ParticleReal ** warpx_getParticleBoundaryBuffer(const char *species_name, int boundary, int lev, int *num_tiles, int **particles_per_tile, const char *comp_name)
Definition: WarpXWrappers.cpp:514
void warpx_addNParticles(const char *char_species_name, int lenx, amrex::ParticleReal const *x, amrex::ParticleReal const *y, amrex::ParticleReal const *z, amrex::ParticleReal const *vx, amrex::ParticleReal const *vy, amrex::ParticleReal const *vz, int nattr, amrex::ParticleReal const *attr, int uniqueparticles)
Definition: WarpXWrappers.cpp:236
void warpx_SyncCurrent()
Definition: WarpXWrappers.cpp:571
void warpx_init()
Definition: WarpXWrappers.cpp:164
void warpx_set_callback_py_afterstep(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:213
void warpx_set_callback_py_poissonsolver(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:185
def x
Definition: read_lab_particles.py:25
void warpx_set_callback_py_beforestep(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:209
void warpx_ReadBCParams()
Definition: WarpXWrappers.cpp:255
void warpx_FillBoundaryE()
Definition: WarpXWrappers.cpp:563
void warpx_setistep(int lev, int ii)
Definition: WarpXWrappers.cpp:588
bool warpx_use_fdtd_nci_corr()
Definition: WarpXWrappers.cpp:121
int warpx_finestLevel()
Definition: WarpXWrappers.cpp:614
void warpx_set_callback_py_beforedeposition(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:193
int warpx_galerkin_interpolation()
Definition: WarpXWrappers.cpp:126
int warpx_ParticleReal_size()
Definition: WarpXWrappers.cpp:110
int warpx_nSpecies()
Definition: WarpXWrappers.cpp:115
def z
Definition: read_lab_particles.py:26
void warpx_PushParticlesandDepose(amrex::Real cur_time)
Definition: WarpXWrappers.cpp:579
void warpx_evolve(int numsteps)
Definition: WarpXWrappers.cpp:230
amrex::ParticleReal ** warpx_getParticleArrays(const char *char_species_name, const char *char_comp_name, int lev, int *num_tiles, int **particles_per_tile)
Definition: WarpXWrappers.cpp:426
void warpx_addRealComp(const char *char_species_name, const char *char_comp_name, bool comm)
Definition: WarpXWrappers.cpp:467
void warpx_set_callback_py_particleinjection(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:221
void warpx_CheckGriddingForRZSpectral()
Definition: WarpXWrappers.cpp:260
void warpx_set_callback_py_afterinit(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:177
void warpx_EvolveB(amrex::Real dt, DtType a_dt_type)
Definition: WarpXWrappers.cpp:559
int warpx_Real_size()
Definition: WarpXWrappers.cpp:105
void mypc_Redistribute()
Definition: WarpXWrappers.cpp:627
void warpx_ConvertLabParamsToBoost()
Definition: WarpXWrappers.cpp:250
ii
Definition: check_interp_points_and_weights.py:145
void warpx_finalize()
Definition: WarpXWrappers.cpp:172
amrex::Real warpx_getProbHi(int dir)
Definition: WarpXWrappers.cpp:272
int warpx_getParticleBoundaryBufferSize(const char *species_name, int boundary)
Definition: WarpXWrappers.cpp:480
int warpx_getNProcs()
Definition: WarpXWrappers.cpp:623
long warpx_getNumParticles(const char *char_species_name)
Definition: WarpXWrappers.cpp:284
int warpx_nComps()
Definition: WarpXWrappers.cpp:131
void warpx_ComputeDt()
Definition: WarpXWrappers.cpp:546
int warpx_nCompsSpecies(const char *char_species_name)
Definition: WarpXWrappers.cpp:136
void amrex_init(int argc, char *argv[])
Definition: WarpXWrappers.cpp:149
void warpx_set_callback_py_afterrestart(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:217
void warpx_set_callback_py_particleloader(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:205
amrex::Real warpx_getdt(int lev)
Definition: WarpXWrappers.cpp:600
void warpx_EvolveE(amrex::Real dt)
Definition: WarpXWrappers.cpp:555
amrex::ParticleReal ** warpx_getParticleStructs(const char *char_species_name, int lev, int *num_tiles, int **particles_per_tile)
Definition: WarpXWrappers.cpp:402
void(* WARPX_CALLBACK_PY_FUNC_0)()
Definition: WarpXWrappers.H:51
void warpx_set_callback_py_afterEsolve(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:189
void amrex_finalize(int finalize_mpi)
Definition: WarpXWrappers.cpp:159
void warpx_clearParticleBoundaryBuffer()
Definition: WarpXWrappers.cpp:541
void warpx_sett_new(int lev, amrex::Real time)
Definition: WarpXWrappers.cpp:596
amrex::Real warpx_getProbLo(int dir)
Definition: WarpXWrappers.cpp:265
int warpx_maxStep()
Definition: WarpXWrappers.cpp:605
amrex::Real warpx_stopTime()
Definition: WarpXWrappers.cpp:609
void amrex_init_with_inited_mpi(int argc, char *argv[], MPI_Comm mpicomm)
Definition: WarpXWrappers.cpp:154
int warpx_getMyProc()
Definition: WarpXWrappers.cpp:619
int ** warpx_getParticleBoundaryBufferScrapedSteps(const char *species_name, int boundary, int lev, int *num_tiles, int **particles_per_tile)
Definition: WarpXWrappers.cpp:487
void warpx_FillBoundaryB()
Definition: WarpXWrappers.cpp:567
void warpx_set_callback_py_appliedfields(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:225
int warpx_SpaceDim()
Definition: WarpXWrappers.cpp:144
void warpx_set_callback_py_beforeEsolve(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:181
int warpx_getParticleCompIndex(const char *char_species_name, const char *char_comp_name)
Definition: WarpXWrappers.cpp:453
void warpx_MoveWindow(int step, bool move_j)
Definition: WarpXWrappers.cpp:550
void warpx_set_callback_py_particlescraper(WARPX_CALLBACK_PY_FUNC_0)
Definition: WarpXWrappers.cpp:201
void warpx_UpdateAuxilaryData()
Definition: WarpXWrappers.cpp:575