From 54436b53c265cc10a8b095ca3b75589cb0eddedc Mon Sep 17 00:00:00 2001 From: aasensio Date: Wed, 6 Nov 2019 10:11:52 +0000 Subject: [PATCH] Added vmac to photospheres --- README.md | 11 ++++++++- docs/io_files/input.rst | 15 ++++++++----- examples/configurations/conf_single.ini | 7 ++++-- examples/example_algorithm.py | 10 ++++----- examples/example_single_inv.py | 2 +- examples/gen_model.py | 2 -- examples/output.h5 | Bin 0 -> 74488 bytes examples/photospheres/model_photosphere.1d | 4 ++-- examples/photospheres/model_photosphere.h5 | Bin 48848 -> 48928 bytes .../photospheres/model_photosphere_200.1d | 4 ++-- hazel/atmosphere.py | 1 + hazel/data/FALB.1d | 4 ++-- hazel/data/FALC11.1d | 4 ++-- hazel/data/FALD.1d | 4 ++-- hazel/data/FALE11.1d | 4 ++-- hazel/data/FALF.1d | 4 ++-- hazel/data/FALF11.1d | 4 ++-- hazel/data/FALH.1d | 4 ++-- hazel/data/FALH11.1d | 4 ++-- hazel/data/FALP.1d | 4 ++-- hazel/data/FALP11.1d | 4 ++-- hazel/data/FALR11.1d | 4 ++-- hazel/data/FALS.1d | 4 ++-- hazel/data/FALS11.1d | 4 ++-- hazel/data/cool11.1d | 4 ++-- hazel/data/emaltby11.1d | 4 ++-- hazel/data/grevesse11.1d | 4 ++-- hazel/data/holmu11.1d | 4 ++-- hazel/data/hot11.1d | 4 ++-- hazel/data/hsra.1d | 4 ++-- hazel/data/hsra11.1d | 4 ++-- hazel/data/mackkl11.1d | 4 ++-- hazel/data/mmaltby11.1d | 4 ++-- hazel/data/penumjti11.1d | 4 ++-- hazel/data/solannt11.1d | 4 ++-- hazel/data/solanpl11.1d | 4 ++-- hazel/data/valc11.1d | 4 ++-- hazel/io.py | 7 +++--- hazel/multiprocess.py | 9 ++++++-- hazel/parametric.py | 4 +++- hazel/photosphere.py | 21 +++++++++++++----- hazel/tools.py | 14 ++++++++---- output.h5 | Bin 0 -> 27688 bytes test/configurations/conf_mpi_invh5.ini | 3 +++ test/configurations/conf_mpi_synh5.ini | 2 ++ test/configurations/conf_nonmpi_inv1d.ini | 3 +++ test/configurations/conf_nonmpi_syn1d.ini | 4 ++++ test/configurations/conf_single.ini | 3 +++ test/configurations/conf_syn.ini | 2 ++ test/configurations/conf_synobs.ini | 4 ++++ test/photospheres/model_chromosphere.h5 | Bin 2768 -> 0 bytes test/photospheres/model_photosphere.1d | 4 ++-- test/photospheres/model_photosphere.h5 | Bin 48848 -> 48928 bytes test/photospheres/model_photosphere_200.1d | 4 ++-- test/test_file_generators.py | 2 +- test/test_nonmpi_inv1d.py | 2 +- test/test_nonmpi_syn1d.py | 2 +- test/test_programmatic.py | 0 test/test_single_inv.py | 4 ++-- test/test_single_syn.py | 2 +- 60 files changed, 159 insertions(+), 97 deletions(-) delete mode 100755 examples/gen_model.py create mode 100644 examples/output.h5 mode change 100755 => 100644 examples/photospheres/model_photosphere.h5 create mode 100644 output.h5 delete mode 100755 test/photospheres/model_chromosphere.h5 mode change 100755 => 100644 test/test_file_generators.py mode change 100755 => 100644 test/test_nonmpi_inv1d.py mode change 100755 => 100644 test/test_nonmpi_syn1d.py mode change 100755 => 100644 test/test_programmatic.py mode change 100755 => 100644 test/test_single_inv.py mode change 100755 => 100644 test/test_single_syn.py diff --git a/README.md b/README.md index 924ef09..5969f34 100755 --- a/README.md +++ b/README.md @@ -149,4 +149,13 @@ Install the following packages: And then compile them typing the following in the ``docs`` directory: - ./compile \ No newline at end of file + ./compile + +## Issues + +MacOSX Catalina has some issues with the paths to the include files. Defining the following environment variables might help. + + export CFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" + export CCFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" + export CXXFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" + export CPPFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" \ No newline at end of file diff --git a/docs/io_files/input.rst b/docs/io_files/input.rst index 5368309..d5c5217 100755 --- a/docs/io_files/input.rst +++ b/docs/io_files/input.rst @@ -145,12 +145,13 @@ be perturbed with nodes until a fit is obtained for the observed Stokes paramete These are text files which tabulates the depth dependence as a function of the log optical depth at 500 nm of the temperature [K], electron pressure [cgs], microturbulent velocity [cm/s], bulk velocity [cm/s], and the cartesian components of the magnetic field, -Bx, By and Bz [G]. Additionally, the filling factor is given in the header. An example follows: +Bx, By and Bz [G]. Additionally, the filling factor and the macroscopic velocity in km/s +is given in the header. An example follows: :: - ff - 1.0 + ff vmac + 1.0 1.0 logtau T Pe vmic v Bx By Bz 1.2000 8879.7 2.99831E+03 0.000E+00 0.0000E+00 5.0000E+02 0.0000E+00 0.0000E+00 @@ -164,9 +165,10 @@ Bx, By and Bz [G]. Additionally, the filling factor is given in the header. An e HDF5/zarr 3D files ^^^^^^^^^^^^^^^^^^ -HDF5/zarr files with model photospheres are defined with two double-precision datasets: ``model`` and ``ff``. The first +HDF5/zarr files with model photospheres are defined with three double-precision datasets: ``model``, ``ff`` and ``vmac``. The first one has size ``(n_pixel,nz,8)``, containing the depth dependence of the 8 variables for all pixels. The second -one has size ``(n_pixel,)``, containing the filling factor for each pixel. In the following we show how to +and the third ones have sizes ``(n_pixel,)``, containing the filling factor and the macroscopic velocity +for each pixel. In the following we show how to create a sample file: :: @@ -176,12 +178,15 @@ create a sample file: model_3d = np.zeros((n_pixel,nz,8), dtype=np.float64) ff_3d = np.zeros((n_pixel,), dtype=np.float64) + vmac_3d = np.zeros((n_pixel,), dtype=np.float64) f = h5py.File('photospheres/model_photosphere.h5', 'w') db_model = f.create_dataset('model', model_3d.shape, dtype=np.float64) db_ff = f.create_dataset('ff', ff_3d.shape, dtype=np.float64) + db_vmac = f.create_dataset('vmac', vmac_3d.shape, dtype=np.float64) db_model[:] = model_3d db_ff[:] = ff_3d + db_vmac[:] = vmac_3d f.close() FITS 3D files diff --git a/examples/configurations/conf_single.ini b/examples/configurations/conf_single.ini index 01c3710..f2d55f4 100755 --- a/examples/configurations/conf_single.ini +++ b/examples/configurations/conf_single.ini @@ -2,7 +2,7 @@ [Working mode] Output file = output.h5 -Number of cycles = 2 +Number of cycles = 1 # Topology # Always photosphere and then chromosphere @@ -46,6 +46,7 @@ Number of cycles = 2 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 ff = 0.0, 1.001 + vmac = 0.0, 5.0 [[[Nodes]]] T = 2, 2, 5, 5 @@ -55,15 +56,17 @@ Number of cycles = 2 By = 0, 1, 1, 1 Bz = 0, 1, 1, 1 ff = 0, 0, 0, 0 + vmac = 0, 0, 0, 0 [[[Regularization]]] - T = 'l2-value', 10.0, 1.0 + T = 'l2-value', 0.0, 5000.0 vmic = None v = None Bx = None By = None Bz = None ff = None + vmac = None [[Chromosphere 1]] diff --git a/examples/example_algorithm.py b/examples/example_algorithm.py index 391766e..0156031 100755 --- a/examples/example_algorithm.py +++ b/examples/example_algorithm.py @@ -6,7 +6,7 @@ import gc # Test a single inversion in non-iterator mode -mod = hazel.Model('conf_single.ini', working_mode='inversion', verbose=2) +mod = hazel.Model('configurations/conf_single.ini', working_mode='inversion', verbose=2) mod.read_observation() mod.open_output() mod.invert() @@ -16,14 +16,14 @@ final = np.loadtxt('photospheres/model_photosphere.1d', skiprows=4) start = np.loadtxt('photospheres/model_photosphere_200.1d', skiprows=4) -f = h5py.File('output.h5') +f = h5py.File('output.h5', 'r') pl.plot(f['ph1']['T'][0,0,:], label='inverted') pl.plot(final[:,1], label='target') pl.plot(start[:,1], 'x', label='initial') f.close() pl.legend() -mod = hazel.Model('conf_single.ini', working_mode='inversion', verbose=2) +mod = hazel.Model('configurations/conf_single.ini', working_mode='inversion', verbose=2) mod.read_observation() mod.open_output() mod.invert_external(minimize, method='Nelder-Mead') @@ -32,7 +32,7 @@ final = np.loadtxt('photospheres/model_photosphere.1d', skiprows=4) start = np.loadtxt('photospheres/model_photosphere_200.1d', skiprows=4) -f = h5py.File('output.h5') +f = h5py.File('output.h5', 'r') pl.figure() pl.plot(f['ph1']['T'][0,0,:], label='inverted') @@ -41,4 +41,4 @@ f.close() pl.legend() -pl.show() \ No newline at end of file +pl.show() diff --git a/examples/example_single_inv.py b/examples/example_single_inv.py index bfa933e..a636152 100755 --- a/examples/example_single_inv.py +++ b/examples/example_single_inv.py @@ -15,7 +15,7 @@ final = np.loadtxt('photospheres/model_photosphere.1d', skiprows=4) start = np.loadtxt('photospheres/model_photosphere_200.1d', skiprows=4) -f = h5py.File('output.h5') +f = h5py.File('output.h5', 'r') fig = pl.figure() pl.plot(f['ph1']['T'][0,0,0,:]) pl.plot(final[:,1]) diff --git a/examples/gen_model.py b/examples/gen_model.py deleted file mode 100755 index 242a69f..0000000 --- a/examples/gen_model.py +++ /dev/null @@ -1,2 +0,0 @@ -import hazel - diff --git a/examples/output.h5 b/examples/output.h5 new file mode 100644 index 0000000000000000000000000000000000000000..332a7cbc18f09f73757cd6f9ec09405ef8d58ce6 GIT binary patch literal 74488 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 literal 48848 zcmeI*cXSlx9>(!W2qZud5(q_*s)(rcW`Vpk1*8Z;1yNB-?nSDUOA~@hKm=Q`1py09 zQFM1_w(n*)L8>4iAaEm15ebNN5J9-J^KQHz;Cf#2z5nTQPBv`zw=?tZ?2_~0d6HS3 zI^0*L)QzRI$R!~`i_^+kpB8?&9KCGLk+&57z3}T#Mn8#(UcVT<{wP*{5~D@_XjcaDBZS*`V zT#Vr(2Mr!({v|zK-cop8io!cw=XH!$!a9HDhsYV)%6f#DV)BvY3rEvBM<2KF{QO_H z7c*Z8k;$Z*shYg6(3+Ljnq4j?AE3B-Yvk*(v9Z<$5~8mhb92#$p5}^f%DPI9-W<7e zvRKpazbo{|d;R}DPwU>JLyQ*t`@6)1;(z|wh3io>dVGI=@4wDhuRgEj866X2J?&cI z`BQjZ^z&v~^qt#!`TV}XSD!Z%e*fCvpZs-Jps95^l{zmwJA2oxT#VDSaU1MHu=Xh%5dfE?R;i+!!LCSkV-hRc$ zYs_!l5V`y$w?8K=_D`zt+5H*sD9_9NFObK7XIR|!*sFPGzROacPq!`yt@-RXL*nGu z-3FAKGDmq{uK)L`k%u|BDn~dL99yn44vo8DO_6veyOYQvgQ;jLg^YZw2rAF4V zYiv-gs%abj&z@tI=jHxywdOaJ4T$I7Y(IP0k54Pl%k8g|&tD_ISboA>zynWR=e$?W z_x6eE%MNvFF#ZwcdF_vvXT75S-C18|^y#iVFZbUYves{s1~CGslOO)I{rf%3d&UG~ZO zkuEWHj(2FuDz_@nN6&vbf7&Tr-o~w;+Eq(=KKlBT^O;Vuy;jSWW%^W8o|ng85V9Vp zwo_yT9$C?~awX;Y==+bHUvG%DiM>~cdX!h5*R0ENIX}S=7hbR3680C4*y8I&dzm+c9Y%Z19_wnCShzY}Wgp@t#qhm+N;?zWx_DM6J1V=4S>^D$mRHyCjc)xI-jv z9Czc8+vLBeR~)^jUE}zp_X$UiLr-;xVFg=y_c(Y&dHZtzwQyuV4wiR_q1lORPE|Ri zJTKQjMsB~rF7lf`5W8*L0p)pl{ITK4ess;Xi!|HnU1Q_EQ=XU4U$L;YAM@-YJ%7m1 z4vqFI&&&0TlgB^KF6^^EjBisSUwK}xUtHLFoHV<5=4R@Bw|4MmYu3v&RpT5T? z22_Z9b>y-2%JXvl60GO1%9l2gGN#;EWBD58dAWWi<$S;yzf$u2v)e?^ z`PBizqmFMO9-5`&DuT6Lw+S}jP)2Tc!*RQN~{!hDX z6Ak*GoabnuE6>aID<|jgvWssTr(IsP)22Kx_rILn|LJydw916Vwzeyj=jHm#`3-yR z;?P5BoetgfvGTk;{v`SS^{hj*oBKu9=yU4x^7%`W``=C%Wo(DzH+NCrf4P3i^7Yf$ z5MPCdC)bO2DDS^qzhwFTf5H%plcv1*$Rd~Wyj;KN{O3-Q_Grcf+9mb#U#?$yYx_-y zy2Km7CG#7eRe$}<^^^1ZIhVM&|Hn}L=j!i2a{VgE^KYnIyx%hA<3_Hv%EvF)FFL>4 zEe^b}aO3h#>f4v=S3#aXwLRj?&h@6$I#rsMb-r~3P+T)&Fe`e~Y1xTpTQX>UI(Wr_@{Ut2T7;D6<@!~W z=WnK0EPlDpH{YcNl;`F8Rg&ws-z(0onY?}dbieYvT)#?k`<;DaR=v6-r)8_p%k`@) zU;ja$=zmKMf9W@_cmJb)eJ+6Mh-KJ=r((2ttv%#TdJLVmOb`q3ijN8_O%b#pL3y2Zi#=o0j!UC@u*(2w4N zel#BXQ9nELqjq-YM-A=Fk80YPAEnrtA0^qDA0^wFA62n4KdNtMe$?L1{Ai$^`OyOC zM~9#vwRbQ-+6Vn;DfFW^p&vcuWPViM#r$X!^rL=m=0}^LAJz9TKbisk=o{!qRlUrQ z20=gi2>MY0^rMbG=0_`_AJy_RKROEiXd(2Y&d`sJLqB@G=ze55WP>ovAH59y$PWEz zJ@lg;(2stBepJoR@<$zfEPpf``q2UCN8LRve-wm%)Y8rJM*-+Z-CQhxbQt4U~2g@J*3jHV_`cVk_(NgF~bDUex^2MCeCmehuZ1{ssML3iP8_ zpdT%RezXSqQH+D-kGeWo{%9HWqYgUDAC)p#{^&gPBQNx$@z9T&x>^1x1pTO~hvko6 zfqrxt`qAB9mOsjXezX?)QKFCKkGlC-{^(=qM@fE`KgxuDR3ne|*ET~xnhgD@b}s9$ zt%QE`B=n;b(2r6=EPvD>hxOO)39|m$V*%D*n+E;pBj`uRpdWSevi_O_`cW+p%OAZ9 z{ivp!<&W&pkGi{9f9)*vqs7pV`Z-yD?M5fdAMJvEG#~oWAm~ST8mzzeEA%7NuaF;Q zLq8e{{U}vu{k0UG<&Ta+KUxj_=mY3S8PJcOaIpTG*;1OBj`sXpdUT%Wc{_9 zTr7W-5B=zE=tp%tEPwPi^rMr|kGgwVe{CW3qwk>~-Qi>XwNcQI?9h+O_*wpF9Q30C z=tn)FAI0XepMSIh`cZG_M`xfPWfk3zB0b1c^~0>cHWB(!7WAX{pdW>yA02>xl;~&q zqck7uuYC&rsG^tUk20YjU50)%9r{sqz1&iZThb(TLWuCx5n_t1~>pdXq2 zMdU{_p&yNae$>yw`fFx>1o=^02kWny`8DK6Z5*t>*3rTGYY#hEe{Cf6qgSCHt%H74 zL1+1+kH&?FHyZ&7dFcg?=;x`q8bqMgIBOR)6ga=tqx1 zKiUob=q&W3VmT~-baRm9k2(cde{B@>BRBM;az2(nngso*0Q%8D59_ZTf_^j+`cXwU z%OB-HKN<%8sE&)}kG_L`^a1pvLC}xxaI*f|8R$oO(2q>NLVom=!TM`W4c1?aH(35? zH}oSX^rKgx9}R(ibidB}Yjt&&KQjA^$d8UdKl&Q_Q3(2xnIA!Zv;_K*nO{SG^da=4 zkD(v=pdW38esl`@(VaT$uT6k{v=#c%DCkEmoUFfgi;Lxtet>?o2>MZf59_ZTfqvBA z%ld0R=tmWOEPs>^{pb_uN2j45weqw6+C=C_+o2z|4zT{39r}?I`cXRcqoh3c^RqqB zkNQGCIt%^im7@ERS6u0-O!IFK|iYPX8EJd(2r(9Kf2Gw`fJ5qEPu2X`q699kNP@Uf32>Q<&R9i zLVmOg`qA6akA^}&YHP6mS`~xkk4{2A+6evV6X-`TK|eD4i^z|9=&ZliLTCN8Iy%cA znfVdqMM+O zgZ0AIl#-5B+El^rHrT z)?XU~{U`waNDHw1QQH9PuPuOnR6NM?M-!nRRawb?e)f9kN8_L$Rm+qA{%5=+v};{N z##Oh^%Z^+MQX|*9g3ym1g?@Ar`qA{F`%$`ishbpL`J;v*)?a%thxOOSLO+@h{pfq> zNB8ol{S5uc^ef~?FGD}-?_~Y8rcTyhE9qqUqy5m2e9(`~-(PK?{b78Y68Wju z`u0P+#`hmqZg@jn*t-81=tsQ_)?YLGi^z{E87zNv3Hs3y=tpLL1o_bx=tpLL4f)Ym z(2ur5KRO8g=rZ)98V1WB^)*<3Z87wt%g~SJLq8heV*RzAZq{E*^055TCg?}z?@va4 zRLRHkN3)?H9fW?=&d>U5Sr=oIv$3DA#9dRhKxDfFZ69@byG2>nQhel!~TQDZmjubqZ|6o7t|3H_*-i}lw` zze0X=0{YQP=tpluKN=4GsH2nh*Qz^N{>c3O)yR)_KtFOpKQjA^$d4vNKN?`L{#p-% z_1Db&2=b%m2J5ex`8DK6O$^pwyUSqxwJrwhuMIREVWuPudsbQb#2JptBVn-2YGE%c+3 dL6$!n4E<;$^rN;p*WF)}|4(*2`u}D8`ac!bquu}j diff --git a/examples/photospheres/model_photosphere_200.1d b/examples/photospheres/model_photosphere_200.1d index e22fd6d..3aa7462 100755 --- a/examples/photospheres/model_photosphere_200.1d +++ b/examples/photospheres/model_photosphere_200.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 1.0 logtau T Pe vmic v Bx By Bz 1.2000e+00 8.6797e+03 -2.9983e+03 1.0000e+00 0.0000e+00 5.0000e+02 0.0000e+00 0.0000e+00 diff --git a/hazel/atmosphere.py b/hazel/atmosphere.py index 63cf8d8..78666c7 100755 --- a/hazel/atmosphere.py +++ b/hazel/atmosphere.py @@ -19,6 +19,7 @@ class General_atmosphere(object): def __init__(self, atm_type, name): self.ff = 1.0 self.name = name + self.type = atm_type self.logger = logging.getLogger("model") self.logger.setLevel(logging.DEBUG) diff --git a/hazel/data/FALB.1d b/hazel/data/FALB.1d index 1eb98f5..a6ebc13 100755 --- a/hazel/data/FALB.1d +++ b/hazel/data/FALB.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.300 9150.7 3.719000e+03 2.72 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALC11.1d b/hazel/data/FALC11.1d index 91677e8..ad8b373 100755 --- a/hazel/data/FALC11.1d +++ b/hazel/data/FALC11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 9427.2 5.140000e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALD.1d b/hazel/data/FALD.1d index 4d107c3..d08615f 100755 --- a/hazel/data/FALD.1d +++ b/hazel/data/FALD.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.300 9118.0 3.650000e+03 2.73 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALE11.1d b/hazel/data/FALE11.1d index d752fd2..ee3a09a 100755 --- a/hazel/data/FALE11.1d +++ b/hazel/data/FALE11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 9433.3 5.176000e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALF.1d b/hazel/data/FALF.1d index 4f3587c..67c5ac5 100755 --- a/hazel/data/FALF.1d +++ b/hazel/data/FALF.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.300 9032.2 3.367000e+03 2.73 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALF11.1d b/hazel/data/FALF11.1d index 70c3045..45fc68e 100755 --- a/hazel/data/FALF11.1d +++ b/hazel/data/FALF11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 9443.1 5.236000e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALH.1d b/hazel/data/FALH.1d index baa0c9a..cd793de 100755 --- a/hazel/data/FALH.1d +++ b/hazel/data/FALH.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.500 9002.3 3.299000e+03 2.72 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALH11.1d b/hazel/data/FALH11.1d index 13b11dd..21b9970 100755 --- a/hazel/data/FALH11.1d +++ b/hazel/data/FALH11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 9446.1 5.265000e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALP.1d b/hazel/data/FALP.1d index 65c4e14..4f29914 100755 --- a/hazel/data/FALP.1d +++ b/hazel/data/FALP.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.300 8510.2 1.819000e+03 1.83 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALP11.1d b/hazel/data/FALP11.1d index 96c71ba..467270e 100755 --- a/hazel/data/FALP11.1d +++ b/hazel/data/FALP11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.100 8692.4 2.308000e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALR11.1d b/hazel/data/FALR11.1d index 994a8c8..3dd30da 100755 --- a/hazel/data/FALR11.1d +++ b/hazel/data/FALR11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 8763.8 2.949000e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALS.1d b/hazel/data/FALS.1d index 5a91bc2..115e877 100755 --- a/hazel/data/FALS.1d +++ b/hazel/data/FALS.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 6628.7 2.439000e+02 1.20 0.00 0.00 0.00 0.00 diff --git a/hazel/data/FALS11.1d b/hazel/data/FALS11.1d index 0c3f946..9dae2e2 100755 --- a/hazel/data/FALS11.1d +++ b/hazel/data/FALS11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.300 6957.0 4.114000e+02 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/cool11.1d b/hazel/data/cool11.1d index c046a34..52f1ee0 100755 --- a/hazel/data/cool11.1d +++ b/hazel/data/cool11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 6780.3 3.372810e+02 0.60 246200.00 0.00 0.00 0.00 diff --git a/hazel/data/emaltby11.1d b/hazel/data/emaltby11.1d index ab4b09b..b29a819 100755 --- a/hazel/data/emaltby11.1d +++ b/hazel/data/emaltby11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.200 6710.0 2.488480e+02 0.60 0.00 0.00 0.00 0.00 diff --git a/hazel/data/grevesse11.1d b/hazel/data/grevesse11.1d index 85954da..dd24892 100755 --- a/hazel/data/grevesse11.1d +++ b/hazel/data/grevesse11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.900 10220.0 1.082510e+04 0.60 0.00 0.00 0.00 0.00 diff --git a/hazel/data/holmu11.1d b/hazel/data/holmu11.1d index 94820d0..d263b44 100755 --- a/hazel/data/holmu11.1d +++ b/hazel/data/holmu11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.250 8793.9 2.679730e+03 1.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/hot11.1d b/hazel/data/hot11.1d index bf2d26b..1eb1d9b 100755 --- a/hazel/data/hot11.1d +++ b/hazel/data/hot11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 8004.6 1.551370e+03 0.60 10000.00 0.00 0.00 0.00 diff --git a/hazel/data/hsra.1d b/hazel/data/hsra.1d index 93a6f74..ca48b8c 100755 --- a/hazel/data/hsra.1d +++ b/hazel/data/hsra.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.2000 8879.7 2.99831E+03 0.000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 diff --git a/hazel/data/hsra11.1d b/hazel/data/hsra11.1d index 3aae772..ac4f2db 100755 --- a/hazel/data/hsra11.1d +++ b/hazel/data/hsra11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.400 9560.0 6.046790e+03 0.60 0.00 0.00 0.00 0.00 diff --git a/hazel/data/mackkl11.1d b/hazel/data/mackkl11.1d index 8104c20..5e5efb6 100755 --- a/hazel/data/mackkl11.1d +++ b/hazel/data/mackkl11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.200 9117.1 3.316670e+03 0.00 100000.00 0.00 0.00 0.00 diff --git a/hazel/data/mmaltby11.1d b/hazel/data/mmaltby11.1d index de6ad33..b0b8fb3 100755 --- a/hazel/data/mmaltby11.1d +++ b/hazel/data/mmaltby11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.200 6700.0 2.612010e+02 1.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/penumjti11.1d b/hazel/data/penumjti11.1d index 5edf71a..6e3339d 100755 --- a/hazel/data/penumjti11.1d +++ b/hazel/data/penumjti11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.200 8461.0 2.030960e+03 0.60 200000.00 0.00 0.00 0.00 diff --git a/hazel/data/solannt11.1d b/hazel/data/solannt11.1d index 7c4903a..cbf4391 100755 --- a/hazel/data/solannt11.1d +++ b/hazel/data/solannt11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.000 8700.0 1.989200e+03 3.00 0.00 0.00 0.00 0.00 diff --git a/hazel/data/solanpl11.1d b/hazel/data/solanpl11.1d index f7d6c2d..382cbd9 100755 --- a/hazel/data/solanpl11.1d +++ b/hazel/data/solanpl11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.200 9918.0 7.546820e+03 0.60 100000.00 0.00 0.00 0.00 diff --git a/hazel/data/valc11.1d b/hazel/data/valc11.1d index e381090..4f3366c 100755 --- a/hazel/data/valc11.1d +++ b/hazel/data/valc11.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.200 8879.7 2.998310e+03 0.00 0.00 0.00 0.00 0.00 diff --git a/hazel/io.py b/hazel/io.py index 3a81956..018745a 100755 --- a/hazel/io.py +++ b/hazel/io.py @@ -501,12 +501,13 @@ def read(self, pixel=None): if (self.extension == '1d'): f = open(self.filename, 'r') f.readline() - ff = float(f.readline()) + tmp = f.readline().split() + ff, vmac = float(tmp[0]), float(tmp[1]) f.close() - return np.loadtxt(self.filename, skiprows=4), ff + return np.loadtxt(self.filename, skiprows=4), ff, vmac if (self.extension == 'h5' or self.extension == 'zarr'): - return self.handler['model'][pixel,...], self.handler['ff'][pixel] + return self.handler['model'][pixel,...], self.handler['ff'][pixel], self.handler['vmac'][pixel] def close(self): if (self.extension == '1d'): diff --git a/hazel/multiprocess.py b/hazel/multiprocess.py index dbbcbe9..23310d2 100755 --- a/hazel/multiprocess.py +++ b/hazel/multiprocess.py @@ -121,8 +121,13 @@ def nonmpi_work(self): if all(x == 1 for x in mask): for k, v in self.model.atmospheres.items(): - args, ff = v.model_handler.read(pixel=i) - v.set_parameters(args, ff) + if (v.type == 'photosphere'): + args, ff, vmac = v.model_handler.read(pixel=i) + v.set_parameters(args, ff, vmac) + else: + args, ff = v.model_handler.read(pixel=i) + v.set_parameters(args, ff) + v.init_reference() if (self.model.n_randomization > 1): diff --git a/hazel/parametric.py b/hazel/parametric.py index 87ff468..644fdf9 100755 --- a/hazel/parametric.py +++ b/hazel/parametric.py @@ -167,7 +167,9 @@ def nodes_to_model(self): def print_parameters(self, first=False, error=False): self.logger.info(" {0} {1} {2} {3}".format('lambda0', 'sigma', 'd', 'a')) - self.logger.info(" {0:8.3f} {1:8.3f} {2:8.3f} {3:8.3f}".format(self.parameters['lambda0'][0], self.parameters['sigma'][0], self.parameters['depth'][0], self.parameters['a'][0])) + + self.logger.info(" {0:8.3f} {1:8.3f} {2:8.3f} {3:8.3f}".format(np.atleast_1d(self.parameters['lambda0'])[0], \ + np.atleast_1d(self.parameters['sigma'])[0], np.atleast_1d(self.parameters['depth'])[0], np.atleast_1d(self.parameters['a'])[0])) def synthesize(self, stokes=None): """ diff --git a/hazel/photosphere.py b/hazel/photosphere.py index 607c67b..483d18d 100755 --- a/hazel/photosphere.py +++ b/hazel/photosphere.py @@ -33,6 +33,7 @@ def __init__(self, working_mode, name=''): self.parameters['By'] = None self.parameters['Bz'] = None self.parameters['ff'] = None + self.parameters['vmac'] = None self.nodes_location['T'] = None self.nodes_location['vmic'] = None @@ -41,6 +42,7 @@ def __init__(self, working_mode, name=''): self.nodes_location['By'] = None self.nodes_location['Bz'] = None self.nodes_location['ff'] = None + self.nodes_location['vmac'] = None self.n_nodes['T'] = 0 self.n_nodes['vmic'] = 0 @@ -49,6 +51,7 @@ def __init__(self, working_mode, name=''): self.n_nodes['By'] = 0 self.n_nodes['Bz'] = 0 self.n_nodes['ff'] = 0 + self.n_nodes['vmac'] = 0 self.nodes['T'] = 0 self.nodes['vmic'] = 0 @@ -57,6 +60,7 @@ def __init__(self, working_mode, name=''): self.nodes['By'] = 0 self.nodes['Bz'] = 0 self.nodes['ff'] = 0 + self.nodes['vmac'] = 0 self.ranges['T'] = None self.ranges['vmic'] = None @@ -65,6 +69,7 @@ def __init__(self, working_mode, name=''): self.ranges['By'] = None self.ranges['Bz'] = None self.ranges['ff'] = None + self.ranges['vmac'] = None self.cycles['T'] = None self.cycles['vmic'] = None @@ -73,6 +78,7 @@ def __init__(self, working_mode, name=''): self.cycles['By'] = None self.cycles['Bz'] = None self.cycles['ff'] = None + self.cycles['vmac'] = None self.epsilon['T'] = 0.01 self.epsilon['vmic'] = 0.01 @@ -81,6 +87,7 @@ def __init__(self, working_mode, name=''): self.epsilon['By'] = 0.01 self.epsilon['Bz'] = 0.01 self.epsilon['ff'] = 0.01 + self.epsilon['vmac'] = 0.01 self.regularization['T'] = None self.regularization['vmic'] = None @@ -89,6 +96,7 @@ def __init__(self, working_mode, name=''): self.regularization['By'] = None self.regularization['Bz'] = None self.regularization['ff'] = None + self.regularization['vmac'] = None def list_lines(self): """ @@ -211,14 +219,14 @@ def load_reference_model(self, model_file, verbose): self.model_handler = Generic_SIR_file(model_file) self.model_handler.open() - out, ff = self.model_handler.read(pixel=0) + out, ff, vmac = self.model_handler.read(pixel=0) self.model_handler.close() - self.set_parameters(out, ff) + self.set_parameters(out, ff, vmac) self.init_reference(check_borders=True) - def set_parameters(self, model, ff): + def set_parameters(self, model, ff, vmac): """ Set the parameters of the current model to those passed as argument @@ -228,6 +236,8 @@ def set_parameters(self, model, ff): Array with the model ff : float Value of the filling factor + vmac : float + Value of the macroturbulent velocity Returns ------- @@ -249,6 +259,7 @@ def set_parameters(self, model, ff): self.Pe[-1] = 1.11634e-1 self.parameters['ff'] = ff + self.parameters['vmac'] = vmac # Check that parameters are inside borders by clipping inside the interval with a border of 1e-8 if (self.working_mode == 'inversion'): @@ -362,12 +373,12 @@ def synthesize(self, stokes_in, returnRF=False): if (returnRF): stokes, rf = sir_code.synthRF(self.index, self.n_lambda, self.log_tau, self.parameters['T'], self.Pe, self.parameters['vmic'], 1e5*self.parameters['v'], self.parameters['Bx'], self.parameters['By'], - self.parameters['Bz'], self.macroturbulence) + self.parameters['Bz'], self.parameters['vmac']) return self.parameters['ff'] * stokes[1:,:], rf else: stokes, error = sir_code.synth(self.index, self.n_lambda, self.log_tau, self.parameters['T'], self.Pe, 1e5*self.parameters['vmic'], 1e5*self.parameters['v'], self.parameters['Bx'], self.parameters['By'], - self.parameters['Bz'], self.macroturbulence[0]) + self.parameters['Bz'], self.parameters['vmac']) if (error == 1): raise NumericalErrorSIR() diff --git a/hazel/tools.py b/hazel/tools.py index 58ddec1..2baa0e5 100755 --- a/hazel/tools.py +++ b/hazel/tools.py @@ -121,7 +121,7 @@ def __init__(self, file=None, mode='single'): self.mode = mode - self.model = {'model': None, 'ff': None} + self.model = {'model': None, 'ff': None, 'vmac': None} def set_size(self, nz, n_pixel=1): """ @@ -148,6 +148,7 @@ def set_size(self, nz, n_pixel=1): self.model['model'] = np.zeros((n_pixel,nz,8), dtype=np.float64) self.model['ff'] = np.zeros((n_pixel,), dtype=np.float64) + self.model['vmac'] = np.zeros((n_pixel,), dtype=np.float64) def set_default(self, n_pixel=1, default='hsra'): """ @@ -172,7 +173,8 @@ def set_default(self, n_pixel=1, default='hsra'): filename = '/'.join(path[0:-1])+'/data/{0}.1d'.format(default) f = open(filename, 'r') f.readline() - ff = float(f.readline()) + tmp = f.readline().split() + ff, vmac = float(tmp[0]), float(tmp[1]) f.close() model = np.loadtxt(filename, skiprows=4) @@ -180,9 +182,11 @@ def set_default(self, n_pixel=1, default='hsra'): self.model['model'] = np.zeros((n_pixel,nz,8), dtype=np.float64) self.model['ff'] = np.zeros((n_pixel,), dtype=np.float64) + self.model['vmac'] = np.zeros((n_pixel,), dtype=np.float64) self.model['model'][:] = model[None,:,:] self.model['ff'][:] = ff + self.model['vmac'][:] = vmac def list_models(self): docs = """ @@ -290,8 +294,8 @@ def save(self, file, default=None): if (self.mode == 'single'): print("Saving photospheric 1D model : {0}.1d".format(file)) f = open('{0}.1d'.format(file), 'w') - f.write('ff\n') - f.write('{0}\n'.format(self.model['ff'][0])) + f.write('ff vmac\n') + f.write('{0} {1}\n'.format(self.model['ff'][0], self.model['vmac'][0])) f.write('\n') f.write(' logtau T Pe vmic v Bx By Bz\n') @@ -303,8 +307,10 @@ def save(self, file, default=None): f = h5py.File('{0}.h5'.format(file), 'w') db_model = f.create_dataset('model', self.model['model'].shape, dtype=np.float64) db_ff = f.create_dataset('ff', self.model['ff'].shape, dtype=np.float64) + db_vmac = f.create_dataset('vmac', self.model['vmac'].shape, dtype=np.float64) db_model[:] = self.model['model'] db_ff[:] = self.model['ff'] + db_vmac[:] = self.model['vmac'] f.close() diff --git a/output.h5 b/output.h5 new file mode 100644 index 0000000000000000000000000000000000000000..b40b56d9b057dba89cd516a7c934227d6904431a GIT binary patch literal 27688 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 GgZ&>=i@a?B literal 0 HcmV?d00001 diff --git a/test/configurations/conf_mpi_invh5.ini b/test/configurations/conf_mpi_invh5.ini index 8148996..dc3e504 100755 --- a/test/configurations/conf_mpi_invh5.ini +++ b/test/configurations/conf_mpi_invh5.ini @@ -34,6 +34,7 @@ Number of cycles = 1 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 ff = 0.0, 1.0001 + vmac = 0.0, 5.0 [[[Nodes]]] T = 2, 3, 5, 5 @@ -43,6 +44,7 @@ Number of cycles = 1 By = 0, 1, 1, 1 Bz = 0, 1, 1, 1 ff = 0, 0, 0, 0 + vmac = 0, 0, 0, 0 [[Regularization]] T = None @@ -51,6 +53,7 @@ Number of cycles = 1 Bx = None By = None Bz = None + vmac = None [[Chromosphere 1]] Name = ch1 # Name of the atmosphere component diff --git a/test/configurations/conf_mpi_synh5.ini b/test/configurations/conf_mpi_synh5.ini index fbb2faf..d631127 100755 --- a/test/configurations/conf_mpi_synh5.ini +++ b/test/configurations/conf_mpi_synh5.ini @@ -30,6 +30,7 @@ Output file = output.h5 Bx = -1000.0, 1000.0 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 + vmac = 0.0, 5.0 [[[Nodes]]] T = 3, 3, 5, 5 @@ -38,4 +39,5 @@ Output file = output.h5 Bx = 1, 1, 1, 1 By = 1, 1, 1, 1 Bz = 1, 1, 1, 1 + vmac = 0, 0, 0, 0 diff --git a/test/configurations/conf_nonmpi_inv1d.ini b/test/configurations/conf_nonmpi_inv1d.ini index 7c7a115..6187bfc 100755 --- a/test/configurations/conf_nonmpi_inv1d.ini +++ b/test/configurations/conf_nonmpi_inv1d.ini @@ -34,6 +34,7 @@ Number of cycles = 1 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 ff = 0.0, 1.00001 + vmac = 0.0, 5.0 [[[Nodes]]] T = 1, 3, 5, 5 @@ -43,6 +44,7 @@ Number of cycles = 1 By = 0, 1, 1, 1 Bz = 0, 1, 1, 1 ff = 0, 0, 0, 0 + vmac = 0, 0, 0, 0 [[Regularization]] T = None @@ -51,6 +53,7 @@ Number of cycles = 1 Bx = None By = None Bz = None + vmac = None [[Chromosphere 1]] Name = ch1 # Name of the atmosphere component diff --git a/test/configurations/conf_nonmpi_syn1d.ini b/test/configurations/conf_nonmpi_syn1d.ini index 304f0fa..23bfa21 100755 --- a/test/configurations/conf_nonmpi_syn1d.ini +++ b/test/configurations/conf_nonmpi_syn1d.ini @@ -33,6 +33,7 @@ Output file = output.h5 Bx = -1000.0, 1000.0 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 + vmac = 0.0, 5.0 [[[Nodes]]] T = 3, 3, 5, 5 @@ -41,6 +42,7 @@ Output file = output.h5 Bx = 1, 1, 1, 1 By = 1, 1, 1, 1 Bz = 1, 1, 1, 1 + vmac = 0, 0, 0, 0 [[Photosphere 2]] Name = ph2 @@ -56,6 +58,7 @@ Output file = output.h5 Bx = -1000.0, 1000.0 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 + vmac = 0.0, 5.0 [[[Nodes]]] T = 3, 3, 5, 5 @@ -64,6 +67,7 @@ Output file = output.h5 Bx = 1, 1, 1, 1 By = 1, 1, 1, 1 Bz = 1, 1, 1, 1 + vmac = 0, 0, 0, 0 [[Chromosphere 1]] Name = ch1 # Name of the atmosphere component diff --git a/test/configurations/conf_single.ini b/test/configurations/conf_single.ini index 4efd64d..8e1a35f 100755 --- a/test/configurations/conf_single.ini +++ b/test/configurations/conf_single.ini @@ -46,6 +46,7 @@ Number of cycles = 2 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 ff = 0.0, 1.0 + vmac = 0.0, 5.0 [[[Nodes]]] T = 0, 1, 5, 5 @@ -55,6 +56,7 @@ Number of cycles = 2 By = 0, 0, 1, 1 Bz = 0, 0, 1, 1 ff = 0, 0, 0, 0 + vmac = 0, 0, 0, 0 [[[Regularization]]] T = 'l2-value', 10.0, 1.0 @@ -64,6 +66,7 @@ Number of cycles = 2 By = None Bz = None ff = None + vmac = None [[Chromosphere 1]] diff --git a/test/configurations/conf_syn.ini b/test/configurations/conf_syn.ini index 6200cc4..ce80dc3 100755 --- a/test/configurations/conf_syn.ini +++ b/test/configurations/conf_syn.ini @@ -38,6 +38,7 @@ Number of cycles = 1 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 ff = 0.0, 1.001 + vmac = 0.0, 5.0 [[[Nodes]]] T = 1, 1, 5, 5 @@ -47,6 +48,7 @@ Number of cycles = 1 By = 0, 0, 1, 1 Bz = 0, 0, 1, 1 ff = 0, 0, 0, 0 + vmac = 0, 0, 0, 0 [[Chromosphere 1]] diff --git a/test/configurations/conf_synobs.ini b/test/configurations/conf_synobs.ini index 62a1f61..ad7d664 100755 --- a/test/configurations/conf_synobs.ini +++ b/test/configurations/conf_synobs.ini @@ -41,6 +41,7 @@ Output file = output.h5 Bx = -1000.0, 1000.0 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 + vmac = 0.0, 5.0 [[[Nodes]]] T = 3, 3, 5, 5 @@ -49,6 +50,7 @@ Output file = output.h5 Bx = 1, 1, 1, 1 By = 1, 1, 1, 1 Bz = 1, 1, 1, 1 + vmac = 0, 0, 0, 0 [[Photosphere 2]] Name = ph2 @@ -64,6 +66,7 @@ Output file = output.h5 Bx = -1000.0, 1000.0 By = -1000.0, 1000.0 Bz = -1000.0, 1000.0 + vmac = 0.0, 5.0 [[[Nodes]]] T = 3, 3, 5, 5 @@ -72,6 +75,7 @@ Output file = output.h5 Bx = 1, 1, 1, 1 By = 1, 1, 1, 1 Bz = 1, 1, 1, 1 + vmac = 0, 0, 0, 0 [[Chromosphere 1]] Name = ch1 # Name of the atmosphere component diff --git a/test/photospheres/model_chromosphere.h5 b/test/photospheres/model_chromosphere.h5 deleted file mode 100755 index 67448e036cf6ae1257f7587bef39875f96ae6f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2768 zcmeD5aB<`1lHy_j0S*oZ76t(@6Gr@pf(sB83@|=SJ^{*Lgwh>QdIb}N!N>rD3=9%b zaY3m0=;}g(TwNJ}Dq-fsXs9*@0~QF2112y^kEjsvaCHm-c{l>$M#B#h9_Z-;#;2SH00J9gTL1t6 diff --git a/test/photospheres/model_photosphere.1d b/test/photospheres/model_photosphere.1d index 79100a3..57c6676 100755 --- a/test/photospheres/model_photosphere.1d +++ b/test/photospheres/model_photosphere.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.2000 8879.7 2.99831E+03 0.000E+00 0.0000E+00 5.0000E+02 0.0000E+00 0.0000E+00 diff --git a/test/photospheres/model_photosphere.h5 b/test/photospheres/model_photosphere.h5 index 7138104e59593241485d82721405a7134a562993..cd3a0b5650293b02ebd9637769328129cc9e70b7 100755 GIT binary patch literal 48928 zcmeHQ4R96J8QuIq0!cIpfh5{W0#l3a3_k_2bc*?`V3QD}X>bUPNJI6tNFp7il}ZD# zZDvq$tbm<91llQds94Ls_wx4w;k`uplLVoF$Yk0AO+%=3NQi(`gucCJAJsaTkB(!< z_H1T$_igUkd+)jT?%n(Cx!-*p`Q)9CJsyXAy%CHg!1|8Kb` zG464>d;D!IPGT(Q&$6=I>uK)&|2^FFZ%&?UMM6gJA3eG-Yjix$qW6hj=kfo8f&9sL zeZ$FVshiy#_qf}wXYNm{V!?wCl}CPfJh<|Min4DzXVLokWn5P8W32wbx;KciaEF*U zTtLIItOECriSF@Q*W)5B!9k|w~V+?6;0`$eug|BsE0H4!AbEhiG4d+Vw? zHwtq|cP~4E@AtOM{ue{<5B2e#m)tvTQj8UM^(nEq-$&m&%14fyziWk#w(I5nuNC5d z>-vZ56&Q$#F~x30>reFfpVynJ?O@I{pQ|K(xZW(j`oI6i$tTCh{!axTpHvx)HCu1q z8n4%TbVjpOzg66@zI>Bt<9BdgZ;!!eCpOEG4d0viRN)3S9`SVNImfC%SQ>7Lq+swb z)%dnnXFHAfXNBeX;~BsI`m$fB@ksxvJcowBg^=8K|FbRUPOMbpJ!b1P@q5RFZN(Y@WLer$Eopd`2+u4owQ`$TGDUBNHyLv+cDsi>SXDP;QRsEpI77E z`VaiiYNakXW@6dVTs7Wpf57L~%HiBQUP&qaj2e&pp9-1#Y_E}J+h)96l$EK*yU!os zJvFjBdHT-Kv_WdTWwvhMGiv1B=Z1ahcf(TEc%;7vqqDsMnHi3M8u(L{w^c`1N@TQ_WhgY-G=_O@7!Mv5q9zsX!l9^sRPreb-tyJAL+Nk zPC7cb_+-8}c~@_Cml_ZLV-SC}Puj;$i9K|vLybrNW5Z55ie~$y#NK&yQTz!t9_1Go zHt87e6HoiR`IAQfS&avS@yLIgPkc}RI^oX#?P@&uiw~RooU!G;^Rv?~EjXgagTH>j z@3UoX#Un-2N)M^=;IF^ouXT$p)88vR`AXn`8V~*wkpES-JaA;xn_);71kH=qCR&>={OXRuFOII;thp+PE!p8fetLwBh0;176DNrMcp_IIDF)jvPM-w?x}wYEX(m;U4RHA9=# z@q@o1czzvgkd8tA-tpr@YCQNGg8G{ql#R~}f8#{SHZ>mnWrDxTpj_Cs!R|VYDC7enk5b?MJj9>FqDHA2~e-?MKd=MiuQxv>(xaMEw!W`>DQh$GQMjsvz^+%>RrT&QeBkGT+KcfCf-GAWw5A{c897g>S z^+(hnasC?Tuc_@VMRU#I$lGeQ-4JL5%ovZA4%U&4urt`59*JoKZ>lsxz11h5%ovZ zA5nj#w%<^H6qz{aO~Lxt)E`lQMEw!W`>DqW*~bBkGUPFZR8s{>b6z zn6ck^tDEEi^+(hnQGXW|d+8|sg!Kk|4| njsB`A$4C7U^+(hnQGcZFKR)gHBaEWD-TZ!BNA2jX?{NPFC{>%F literal 48848 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 diff --git a/test/photospheres/model_photosphere_200.1d b/test/photospheres/model_photosphere_200.1d index e22fd6d..076c93b 100755 --- a/test/photospheres/model_photosphere_200.1d +++ b/test/photospheres/model_photosphere_200.1d @@ -1,5 +1,5 @@ -ff -1.0 +ff vmac +1.0 0.0 logtau T Pe vmic v Bx By Bz 1.2000e+00 8.6797e+03 -2.9983e+03 1.0000e+00 0.0000e+00 5.0000e+02 0.0000e+00 0.0000e+00 diff --git a/test/test_file_generators.py b/test/test_file_generators.py old mode 100755 new mode 100644 index 005a496..a9d4780 --- a/test/test_file_generators.py +++ b/test/test_file_generators.py @@ -44,4 +44,4 @@ def test_file_generators(): for f in glob.glob('chromosphere*.*'): os.remove(f) except: - pass \ No newline at end of file + pass diff --git a/test/test_nonmpi_inv1d.py b/test/test_nonmpi_inv1d.py old mode 100755 new mode 100644 index a8bf66c..e658aae --- a/test/test_nonmpi_inv1d.py +++ b/test/test_nonmpi_inv1d.py @@ -22,4 +22,4 @@ def test_nonmpi_inv1d(): try: os.remove('output.h5') except: - pass \ No newline at end of file + pass diff --git a/test/test_nonmpi_syn1d.py b/test/test_nonmpi_syn1d.py old mode 100755 new mode 100644 index b43d52b..9d91002 --- a/test/test_nonmpi_syn1d.py +++ b/test/test_nonmpi_syn1d.py @@ -20,4 +20,4 @@ def test_nonmpi_syn1d(): try: os.remove('output.h5') except: - pass \ No newline at end of file + pass diff --git a/test/test_programmatic.py b/test/test_programmatic.py old mode 100755 new mode 100644 diff --git a/test/test_single_inv.py b/test/test_single_inv.py old mode 100755 new mode 100644 index 3710256..44bc062 --- a/test/test_single_inv.py +++ b/test/test_single_inv.py @@ -13,7 +13,7 @@ def test_single_inv(): mod.close_output() - f = h5py.File('output.h5') + f = h5py.File('output.h5', 'r') assert f['spec1']['stokes'].shape == (1,1,2,4,150), "incorrect dimensions in inversion" @@ -22,4 +22,4 @@ def test_single_inv(): try: os.remove('output.h5') except: - pass \ No newline at end of file + pass diff --git a/test/test_single_syn.py b/test/test_single_syn.py old mode 100755 new mode 100644 index 10c1d14..dc655df --- a/test/test_single_syn.py +++ b/test/test_single_syn.py @@ -9,4 +9,4 @@ def test_single_syn(): mod.write_output() mod.close_output() - assert mod.spectrum['spec1'].stokes.shape == (4,150), "incorrect dimensions in synthesis" \ No newline at end of file + assert mod.spectrum['spec1'].stokes.shape == (4,150), "incorrect dimensions in synthesis"