Skip to content

Commit 48bb792

Browse files
committed
3rd commit
1 parent c80f075 commit 48bb792

File tree

653 files changed

+968121
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

653 files changed

+968121
-2
lines changed

.travis.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
language: c
2+
3+
sudo: required
4+
before_install:
5+
- sudo apt-get install gfortran
6+
7+
matrix:
8+
include:
9+
- os: linux
10+
dist: trusty
11+
sudo: required
12+
env: PLUMED_CC=mpif90 PLUMED_CXX=mpif90 MAKEDOC=yes PLUMED_ALL_TESTS=yes
13+
- os: linux
14+
dist: trusty
15+
sudo: required
16+
env: PLUMED_CC=mpif90 PLUMED_CXX=mpif90 PLUMED_CXXFLAGS=-O3 LAPACK=yes CONFIG_FLAGS="--disable-external-lapack"
17+
18+
install:
19+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -qq ; fi
20+
- if test "$PLUMED_CXX" == "mpif90" -a "$TRAVIS_OS_NAME" == "linux" ; then sudo apt-get install -y libopenmpi-dev openmpi-bin ; fi
21+
- make
22+
23+
script:
24+
- if test "$PLUMED_CXX" ; then make; fi

README.md

+32-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,32 @@
1-
# MOCASSIN-3.0
2-
MOnte CArlo SimulationS of Ionized Nebulae, Version 3.0
1+
## MOCASSIN-3.0
2+
[![Build Status](https://travis-ci.org/equib/MOCASSIN-3.0.svg?branch=master)](https://travis-ci.org/equib/MOCASSIN-3.0)
3+
[![Binder](http://mybinder.org/badge.svg)](http://mybinder.org/repo/equib/mocassin-3.0)
4+
5+
**MOnte CArlo SimulationS of Ionized Nebulae**, Version 3.0
6+
7+
Copyright (C) 2007 Barbara Ercolano
8+
9+
### Installation
10+
11+
How to compile:
12+
13+
make mocassin
14+
make mocassinWarm
15+
make mocassinOutput
16+
make mocassinPlot
17+
18+
How to clean:
19+
20+
make clean
21+
22+
How to run:
23+
24+
mpirun -np N ./mocassin
25+
26+
where N is number of processors for parallel computing.
27+
28+
### References
29+
30+
* Ercolano, B., Clarke, C. J., & Drake, J. J., [ApJ, 699, 1639, 2009](http://adsabs.harvard.edu/abs/2009ApJ...699.1639E)
31+
32+
* Ercolano, B., Drake, J. J., Raymond, J. C., & Clarke, C. C., [ApJ, 688, 398-407, 2008](http://adsabs.harvard.edu/abs/2008ApJ...688..398E)

accessories/dustShellInput.in

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
4.48e15 8.51e17 ! rin, rout
2+
0.005 ! mdmg
3+
'mrnsizes.dat' ! sizefile
4+
'mrnspecies.dat'! speciesfile
5+
50 50 50 ! nx ny nz

accessories/makeClothoShell.f90

+189
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
program makeDustShell
2+
implicit none
3+
4+
real(kind = 8) :: rin, rout, radius, normWeight
5+
real(kind = 8) :: dx, dy, dz, den, dx1
6+
real(kind = 8) :: mdmg, sums, Pi = 3.1416
7+
real(kind = 8), pointer :: xaxis(:), yaxis(:), &
8+
& zaxis(:), rho(:), rad(:), a(:), &
9+
& wa(:), abun(:), rhospec(:), da(:)
10+
11+
integer :: nx, ny, nz, nrho, iskip, irho
12+
integer :: i, j, k, nspec, nsizes, ii, ai
13+
14+
character(len=50) :: sizefile, speciesfile, skip
15+
16+
open(unit=10, file='dustShellInput.in')
17+
18+
read(10, *) rin, rout
19+
read(10, *) mdmg
20+
read(10, *) sizefile
21+
read(10, *) speciesfile
22+
read(10, *) nx, ny, nz
23+
24+
close(10)
25+
26+
open(unit=10, file='rhoClotho.dat')
27+
read(10,*) nrho
28+
29+
allocate(rad(nrho))
30+
allocate(rho(nrho))
31+
32+
do i = 1, nrho
33+
read(10,*) rad(i), rho(i)
34+
end do
35+
36+
close(10)
37+
38+
open(unit=10, file=speciesfile)
39+
read(10,*) nspec
40+
allocate(abun(nspec))
41+
allocate(rhospec(nspec))
42+
do i = 1, nspec
43+
read(10,*) skip, abun(i), rhospec(i)
44+
end do
45+
close(10)
46+
47+
open(unit=10, file=sizefile)
48+
read(10,*) nsizes
49+
allocate(a(nsizes))
50+
allocate(wa(nsizes))
51+
allocate(da(nsizes))
52+
do i = 1, nsizes
53+
read(10,*) iskip, a(i), wa(i)
54+
end do
55+
close(10)
56+
57+
58+
if (nSizes>1) then
59+
da(1) = a(2)-a(1)
60+
do ai = 2, nSizes-1
61+
da(ai) = (a(ai+1)-a(ai-1))/2.
62+
end do
63+
da(nSizes) = a(nSizes)-a(nSizes-1)
64+
end if
65+
normWeight= 0.
66+
do ai = 1, nSizes
67+
normWeight = normWeight+wa(ai)*da(ai)
68+
end do
69+
if (nSizes>1) then
70+
do ai = 1, nSizes
71+
wa(ai) = (wa(ai)*da(ai))/normWeight
72+
if (.not.wa(ai)>=0.) then
73+
print*, '! makeDustXSec : Invalid grain weight ', wa(ai), ai
74+
stop
75+
end if
76+
end do
77+
end if
78+
79+
print*, ' index, a [um], da [um], weight '
80+
do ai = 1, nSizes
81+
print*, ai, real(a(ai)), real(da(ai)), real(wa(ai))
82+
end do
83+
84+
a = a*1.e-4 ! cm
85+
sums = 0.
86+
87+
do i = 1, nspec
88+
do j = 1, nsizes
89+
sums = sums + rhospec(i)*abun(i)*&
90+
& (4./3.)*Pi*wa(j)*a(j)**3
91+
92+
enddo
93+
enddo
94+
95+
allocate(xaxis(nx+14))
96+
allocate(yaxis(ny+14))
97+
allocate(zaxis(nz+14))
98+
99+
xaxis = 0.
100+
yaxis = 0.
101+
zaxis = 0.
102+
103+
104+
! dx = (rout-rin)/(nx-1)
105+
! dy = (rout-rin)/(ny-1)
106+
! dz = (rout-rin)/(nz-1)
107+
108+
dx = (log10(rout)-log10(rin))/(nx-1)
109+
dy = (log10(rout)-log10(rin))/(ny-1)
110+
dz = (log10(rout)-log10(rin))/(nz-1)
111+
112+
dx1 = rin/14.
113+
114+
do i = 2, 14
115+
xaxis(i) = (xaxis(i-1)+dx1)
116+
end do
117+
do i = 2, 14
118+
yaxis(i) = (yaxis(i-1)+dx1)
119+
end do
120+
do i = 2, 14
121+
zaxis(i) = (zaxis(i-1)+dx1)
122+
end do
123+
124+
xaxis(2:14) = log10(xaxis(2:14))
125+
yaxis(2:14) = log10(yaxis(2:14))
126+
zaxis(2:14) = log10(zaxis(2:14))
127+
128+
do i = 15, nx+14
129+
xaxis(i) = log10(rad(i-14))
130+
end do
131+
do i = 15, ny+14
132+
yaxis(i) = log10(rad(i-14))
133+
end do
134+
do i = 15, nz+14
135+
zaxis(i) = log10(rad(i-14))
136+
end do
137+
138+
xaxis(2:nx+14) = 10.**xaxis(2:nx+14)
139+
yaxis(2:nx+14) = 10.**yaxis(2:nx+14)
140+
zaxis(2:nx+14) = 10.**zaxis(2:nx+14)
141+
142+
open(unit=12, file = 'ndust.out')
143+
144+
do i = 1, nx+14
145+
do j = 1, ny+14
146+
do k = 1, nz+14
147+
148+
radius = 1.e10*sqrt( (xaxis(i)/1.e10)*(xaxis(i)/1.e10) + &
149+
& (yaxis(j)/1.e10)*(yaxis(j)/1.e10) + &
150+
& (zaxis(k)/1.e10)*(zaxis(k)/1.e10) )
151+
152+
irho = 0
153+
154+
do ii = 1, nrho
155+
156+
if(rad(ii) > radius) then
157+
irho = ii-1
158+
exit
159+
end if
160+
end do
161+
if (irho == 0) then
162+
den = 0.
163+
elseif (irho ==nrho) then
164+
den = rho(nrho)
165+
elseif (irho > 0 .and. irho < nrho) then
166+
den = rho(irho+1) + (rho(irho)-rho(irho+1))*&
167+
& (rad(irho+1)-radius)/(rad(irho+1)-rad(irho))
168+
else
169+
print*, 'insanity in rho location'
170+
stop
171+
end if
172+
173+
den = den*0.7/1.67d-24
174+
175+
den = den*3.32d-10
176+
177+
178+
write(12, *) real(xaxis(i)), real(yaxis(j)), real(zaxis(k)), real(den)
179+
180+
end do
181+
182+
end do
183+
end do
184+
185+
close(12)
186+
187+
! print*, mdmg/sums, 3.32d-10*0.7/1.67d-24, (3.32d-10*0.7/1.67d-24)/(mdmg/sums)
188+
189+
end program makeDustShell

accessories/mrnsizes.dat

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
28 sizes
2+
1 5.0000008E-03 1.1313702E+08
3+
2 5.7795621E-03 6.8134608E+07
4+
3 6.6806665E-03 4.1032760E+07
5+
4 7.7222600E-03 2.4711240E+07
6+
5 8.9262547E-03 1.4881871E+07
7+
6 1.0317967E-02 8962321.
8+
7 1.1926661E-02 5397386.
9+
8 1.3786174E-02 3250475.
10+
9 1.5935604E-02 1957538.
11+
10 1.8420158E-02 1178890.
12+
11 2.1292087E-02 709963.8
13+
12 2.4611777E-02 427562.5
14+
13 2.8449053E-02 257491.4
15+
14 3.2884602E-02 155069.3
16+
15 3.8011711E-02 93387.56
17+
16 4.3938190E-02 56240.86
18+
17 5.0788693E-02 33870.01
19+
18 5.8707271E-02 20397.57
20+
19 6.7860432E-02 12284.06
21+
20 7.8440711E-02 7397.835
22+
21 9.0670548E-02 4455.209
23+
22 0.1048072 2683.064
24+
23 0.1211479 1615.826
25+
24 0.1400363 973.1000
26+
25 0.1618697 586.0309
27+
26 0.1871071 352.9262
28+
27 0.2162794 212.5430
29+
28 0.2500000 128.0001
30+
31+
32+
slope (p): 3.500000

accessories/mrnspecies.dat

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2
2+
'dustData/sil-dlee.nk' 0.5288 3.6
3+
'dustData/grph2-dl.nk' 0.47 2.2
4+
'dustData/grph1-dl.nk' 0.1178 2.2

accessories/rhoClotho.dat

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
50
2+
4.4800001E+15 1.3687948E-15
3+
4.9863309E+15 9.1459748E-16
4+
5.5498880E+15 6.8187640E-16
5+
6.1771379E+15 5.3306070E-16
6+
6.8752800E+15 4.2759727E-16
7+
7.6523261E+15 3.4837793E-16
8+
8.5171945E+15 2.8665477E-16
9+
9.4798110E+15 2.3737357E-16
10+
1.0551222E+16 1.9735550E-16
11+
1.1743725E+16 1.6447244E-16
12+
1.3071004E+16 1.3722924E-16
13+
1.4548293E+16 1.1453396E-16
14+
1.6192545E+16 9.5562965E-17
15+
1.8022632E+16 7.9677365E-17
16+
2.0059557E+16 6.6369333E-17
17+
2.2326694E+16 5.5226542E-17
18+
2.4850062E+16 4.5908193E-17
19+
2.7658625E+16 3.8128579E-17
20+
3.0784612E+16 3.1645707E-17
21+
3.4263898E+16 2.6253306E-17
22+
3.8136415E+16 2.1775053E-17
23+
4.2446603E+16 1.8060331E-17
24+
4.7243936E+16 1.4980997E-17
25+
5.2583461E+16 1.2428760E-17
26+
5.8526458E+16 1.0312863E-17
27+
6.5141138E+16 8.5578617E-18
28+
7.2503412E+16 7.1014266E-18
29+
8.0697771E+16 5.8922267E-18
30+
8.9818254E+16 4.8880162E-18
31+
9.9969539E+16 4.0539758E-18
32+
1.1126813E+17 3.3613417E-18
33+
1.2384369E+17 2.7862878E-18
34+
1.3784054E+17 2.3086652E-18
35+
1.5341932E+17 1.9122937E-18
36+
1.7075883E+17 1.5836033E-18
37+
1.9005804E+17 1.3112292E-18
38+
2.1153846E+17 1.0856665E-18
39+
2.3544662E+17 8.9897648E-19
40+
2.6205686E+17 7.4453751E-19
41+
2.9167463E+17 6.1683360E-19
42+
3.2463978E+17 5.1127543E-19
43+
3.6133065E+17 4.2404928E-19
44+
4.0216837E+17 3.5198944E-19
45+
4.4762156E+17 2.9247111E-19
46+
4.9821191E+17 2.4332022E-19
47+
5.5451996E+17 2.0273792E-19
48+
6.1719202E+17 1.6923756E-19
49+
6.8694724E+17 1.4159198E-19
50+
7.6458623E+17 1.1878992E-19
51+
8.5100001E+17 9.9999997E-20
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
autoPackets 0.20 2. 10000000
2+
output
3+
symmetricXYZ
4+
contShape blackbody
5+
nebComposition noGas
6+
maxIterateMC 30 95.
7+
nPhotons 100000
8+
nx 16
9+
ny 16
10+
nz 16
11+
LStar 38.26
12+
Rin 0.
13+
Rout 2.1800001e17
14+
TStellar 2500.
15+
Ndust file 'input/p0tau1.ndust'
16+
dustFile 'input/p0tau1_grainspecies.dat' 'input/p0tau1_grainsizes.dat'
17+
writeGrid 80.
18+
convLimit 0.05
19+

0 commit comments

Comments
 (0)