3 Created on Mon Jul 30 03:59:33 2018 8 from __future__
import print_function
17 return {
'geometry':
'cartesian',
19 'domain_dimensions': s.cartesian.dims,
20 'periodicity': p.periodic,
28 'bbox': domain_bbox(s),
36 'b1':
'magnetic_field_x',
37 'b2':
'magnetic_field_y',
38 'b3':
'magnetic_field_z',
42 Only give these if also attaching units to the array data: 43 'length_units': p.units.l, 44 'time_units': p.units.t, 45 'mass_units': p.units.m, 46 'unit_system': p.units.system, 49 def patch(p,copy=False):
50 p_void=(np.array([]),
'code_length')
59 dict={
'left_edge': p.llc_cart,
60 'right_edge': p.llc_cart+p.size,
63 'particle_position_x': p_void,
64 'particle_position_y': p_void,
65 'particle_position_z': p_void}
66 for k,iv
in p.idx.dict.items():
67 if p.kind[0:6]==
'ramses':
68 k =
'ux' if k==
'p1' else k
69 k =
'uy' if k==
'p2' else k
70 k =
'uz' if k==
'p3' else k
71 elif p.kind[0:8]==
'stagger2':
72 k =
'ux' if k==
'p1' else k
73 k =
'uy' if k==
'p2' else k
74 k =
'uz' if k==
'p3' else k
77 key = tr[k]
if k
in tr.keys()
else k
86 dict[key]=p.var(iv,copy=copy)
88 for k
in p.keys[
'aux']:
89 dict[k]=p.var(k,copy=copy)
92 def patches(s,copy=True):
95 gg.append(patch(p,copy=copy))
98 def domain_dimensions(s):
99 return s.cartesian.dims
101 def magnetic_unit(s):
102 return s.units.l**(-0.5)*s.units.m**(0.5)*s.units.t**(-1.0)
105 return np.array([s.cartesian.origin,s.cartesian.size]).T
107 def open_amr(iout=1,run='.',data='../data',verbose=0,copy=True):
108 return snapshot(iout=iout,run=run,data=data,verbose=verbose,copy=copy)
110 def snapshot(iout=1,run='.',data='../data',verbose=0,copy=True):
112 Open snapshot iout in directory data/run/, returning a YT data set 116 print(
'time:',s.time)
119 print(
' yt patches:',len(s.patches))
120 print(
'domain_dimesions:',dispatch.yt.domain_dimensions(s))
122 parameters=dispatch.yt.parameters(s)
123 ds = yt.load_amr_grids(dispatch.yt.patches(s,copy=copy), **parameters)
126 def open_unigrid(iout=1,run='.',data='../data',verbose=0,copy=True):
129 parameters=dispatch.yt.parameters(s)
131 data=dispatch.yt.patches(s,copy=copy)
132 ds = yt.load_uniform_grid(data, **parameters)