11import numpy
22import warnings
3- from amuse .ext .evrard_test import body_centered_grid_unit_cube
4- from amuse .ext .evrard_test import regular_grid_unit_cube
53from amuse .ext .evrard_test import uniform_random_unit_cube
64from amuse .units import nbody_system
7- from amuse .units import units
85
96from amuse .datamodel import Particles
107from amuse .datamodel import ParticlesWithUnitsConverted
8+
9+
1110def approximate_inverse_error_function (x ):
1211 a = 8 * (numpy .pi - 3 )/ 3 * numpy .pi * (4 - numpy .pi )
1312 return numpy .sign (x )* numpy .sqrt (
@@ -45,7 +44,6 @@ def make_xyz(self):
4544
4645
4746class ProtoPlanetaryDisk :
48-
4947 def __init__ (
5048 self , targetN , convert_nbody = None , discfraction = 0.1 ,
5149 densitypower = 1. , thermalpower = 0.5 , radius_min = 1 , radius_max = 100 ,
@@ -56,28 +54,22 @@ def __init__(
5654 "Rmin is deprecated, use radius_min instead" ,
5755 category = FutureWarning ,
5856 )
59- if radius_min is not None and radius_min != Rmin :
60- raise ValueError (
61- "Rmin and radius_min have different values, "
62- "this is only allowed if one of them is None"
63- )
6457 radius_min = Rmin
6558 if radius_min is None :
6659 raise ValueError ("radius_min must be set" )
60+
6761 if Rmax is not None :
6862 warnings .warn (
6963 "Rmax is deprecated, use radius_max instead" ,
7064 category = FutureWarning ,
7165 )
72- if radius_max is not None and radius_max != Rmax :
73- raise ValueError (
74- "Rmax and radius_max have different values, "
75- "this is only allowed if one of them is None"
76- )
7766 radius_max = Rmax
7867 if radius_max is None :
7968 raise ValueError ("radius_max must be set" )
8069
70+ if type (targetN ) != int :
71+ targetN = int (targetN )
72+
8173 self .targetN = targetN
8274 self .convert_nbody = convert_nbody
8375 self .densitypower = densitypower
@@ -92,8 +84,8 @@ def __init__(
9284 self .a2 = self .thermalpower / 2
9385 self .g = densitypower
9486 self .g2 = 2 - densitypower
95- self .k_out = ((1 + discfraction )/ Rmax ** 3 )** 0.5
96- self .sigma_out = self .g2 * discfraction / (2 * numpy .pi * Rmax ** self .g * (Rmax ** self .g2 - Rmin ** self .g2 ))
87+ self .k_out = ((1 + discfraction )/ radius_max ** 3 )** 0.5
88+ self .sigma_out = self .g2 * discfraction / (2 * numpy .pi * radius_max ** self .g * (radius_max ** self .g2 - radius_min ** self .g2 ))
9789 self .cs_out = self .q_out * numpy .pi * self .sigma_out / self .k_out
9890
9991 self .base_cylinder = uniform_unit_cylinder (targetN ,base_grid )
0 commit comments