blob: 55c11c432279edf32ffae557d83d8e3ccb7d7e22 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
from .Bucket import Bucket
from .WarpX import warpx
from .Amr import amr
from .Geometry import geometry
from .Algo import algo
from .Langmuirwave import langmuirwave
from .Interpolation import interpolation
from .Laser import laser
from . import Particles
from .Particles import particles, particles_list
import ctypes
from ._libwarpx import libwarpx
from ._libwarpx import amrex_init
class AMReX(object):
def create_argv_list(self):
argv = []
argv += warpx.attrlist()
argv += amr.attrlist()
argv += geometry.attrlist()
argv += algo.attrlist()
argv += langmuirwave.attrlist()
argv += interpolation.attrlist()
argv += particles.attrlist()
argv += laser.attrlist()
if not particles_list:
# --- This is needed in case only species_names has been set,
# --- assuming that only the built in particle types are being used.
for pstring in particles.species_names.split(' '):
particles_list.append(getattr(Particles, pstring))
for particle in particles_list:
argv += particle.attrlist()
return argv
def init(self):
argv = ['warpx'] + self.create_argv_list()
amrex_init(argv)
def finalize(self, finalize_mpi=1):
libwarpx.amrex_finalize(finalize_mpi)
def write_inputs(self, filename='inputs'):
argv = self.create_argv_list()
with open(filename, 'w') as ff:
for arg in argv:
ff.write('{0}\n'.format(arg))
|