From e29b6ecb332f5670940571c4bfcb4521f1d16a6e Mon Sep 17 00:00:00 2001 From: David Hendriks <davidhendriks93@gmail.com> Date: Tue, 13 Aug 2019 18:39:20 +0100 Subject: [PATCH] moved some files around and created examples directory containing some examples --- README.md | 9 ++- __pycache__/defaults.cpython-36.pyc | Bin 4864 -> 4881 bytes build/temp.linux-x86_64-3.6/binary_c_python.o | Bin 70640 -> 49752 bytes examples/__init__.py | 0 examples/full_evolution_with_plot.py | 73 ++++++++++++++++++ python_API_test.py | 2 - test_david.py | 66 +--------------- utils/__pycache__/defaults.cpython-36.pyc | Bin 0 -> 4891 bytes utils/__pycache__/functions.cpython-36.pyc | Bin 0 -> 405 bytes defaults.py => utils/defaults.py | 0 utils/functions.py | 10 +++ utils/stellar_types.py | 18 +++++ 12 files changed, 112 insertions(+), 66 deletions(-) create mode 100644 examples/__init__.py create mode 100644 examples/full_evolution_with_plot.py create mode 100644 utils/__pycache__/defaults.cpython-36.pyc create mode 100644 utils/__pycache__/functions.cpython-36.pyc rename defaults.py => utils/defaults.py (100%) create mode 100644 utils/functions.py create mode 100644 utils/stellar_types.py diff --git a/README.md b/README.md index 50a44cef3..90c0ef452 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,16 @@ Then to test the Python module: ``` You will require whatever libraries with which binary_c was compiled, as well as the compiler with which Python was built (usually gcc, which is easily installed on most systems). +If you want to be able to import the binary_c module correctly for child directories (or anywhere for that matter), execute or put the following code in your .bashrc/.zshrc: +``` +export LD_LIBRARY_PATH=<full path to directory containing libbinary_c_api.so> +``` + TODO --------------------- -- ?Put the header and src files in a dedicated directory +- ?Put the header and src files in a dedicated directory. - ?Have the compiled files be written into build - Use sphinx for auto generation of docs - Use queueing system/asynchronous task queue +- Make some parse-data that can be easily used +- Make some simple script to assign probabilities diff --git a/__pycache__/defaults.cpython-36.pyc b/__pycache__/defaults.cpython-36.pyc index 5e366ee6c1b3beae8fadebe63d1e7e413ff1ec67..16d2a1e2a2eebed842457dfebe2c60d92cc79c8d 100644 GIT binary patch delta 51 zcmZoro2bTa%*)I5_*T$H_7p)`2mP}A9Q}d}{lwyuqWt*e{FGGvl#JB8l%mY+;?3oP Gos0msx)I(0 delta 34 pcmbQJ)}Y32%*)GV|1oeQdx{{BzJ5l2ZmNDtVp(R&<_^J5MgXd&3W@*# diff --git a/build/temp.linux-x86_64-3.6/binary_c_python.o b/build/temp.linux-x86_64-3.6/binary_c_python.o index 931bef1273d1cdd3d3e69442b345fbdbaedc611c..ca9e7c36ab4089a52d0b5498471952e18df97964 100644 GIT binary patch literal 49752 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 NBIx?6DbPUg{{WP3_b~tf literal 70640 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 diff --git a/examples/__init__.py b/examples/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/full_evolution_with_plot.py b/examples/full_evolution_with_plot.py new file mode 100644 index 000000000..02cf4fd51 --- /dev/null +++ b/examples/full_evolution_with_plot.py @@ -0,0 +1,73 @@ +import os, sys +import matplotlib.pyplot as plt + +import binary_c + +# Append root dir of this project to include functionality +sys.path.append(os.path.dirname(os.getcwd())) +from utils.defaults import physics_defaults +from utils.functions import create_arg_string + + + + +def example_with_loading_default_args(): + """ + Example function loading the default physics args for a binary_c system. Got + it from the binary_grid2 perl module + + This function works if binary_c is set to log something every timestep so that we can plot the evolution of a system + """ + + # Load args + physics_args = physics_defaults.copy() + + # Manually set M_1, M_2, orbital_period and separation values: + physics_args['M_1'] = 20 + physics_args['M_2'] = 15 + physics_args['separation'] = 0 # 0 = ignored, use period + physics_args['orbital_period'] = 4530.0 + + arg_string = create_arg_string(physics_args) + + arg_string = f'binary_c {arg_string}' + + buffer = "" + + output = binary_c.run_binary(arg_string) + + # Make some + results = {} + time_arr = [] + mass_arr = [] + mass_2_arr = [] + + # split output on newlines + for line in output.split('\n'): + # Skip any blank lines + if not line=='': + split_line = line.split() + header = split_line[0] + value_array = split_line[1:] + + # Use parse data here: + if header=='TESTLOG': + # Add values to lists + time_arr.append(float(value_array[0])) + mass_arr.append(float(value_array[1])) + mass_2_arr.append(float(value_array[4])) + + # Save in results dir + results['time'] = time_arr + results['mass'] = mass_arr + results['mass2'] = mass_2_arr + + return results + +results = example_with_loading_default_args() + +# Plot some stuff +plt.plot(results['time'], results['mass']) +plt.plot(results['time'], results['mass2']) +plt.xscale('log') +plt.show() \ No newline at end of file diff --git a/python_API_test.py b/python_API_test.py index bbba1d945..fb77ec234 100755 --- a/python_API_test.py +++ b/python_API_test.py @@ -7,8 +7,6 @@ import binary_c # module. ############################################################ - - def run_test_binary(): m1 = 15.0 # Msun m2 = 14.0 # Msun diff --git a/test_david.py b/test_david.py index dd375efd4..99f0154fa 100644 --- a/test_david.py +++ b/test_david.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 import os import binary_c +import matplotlib.pyplot as plt from defaults import physics_defaults @@ -27,9 +28,9 @@ def run_test_binary(): # print ("Binary_c output:\n\n") print (output) - def run_simple_loop_binary(): # Some simple function with a loop + # This function assumes a single output line m2 = 14.0 # Msun separation = 0 # 0 = ignored, use period @@ -77,30 +78,6 @@ def run_simple_loop_binary(): print('zams_mass1:' ,initial_m1) print('time:', time) - - - - - - - - - - - - - - - - - - - - - - - - # print("Current binary_c object class functions: ") # print(dir(binary_c)) @@ -119,41 +96,4 @@ def run_simple_loop_binary(): # run_test_binary() # Test grid-like -# run_simple_loop_binary() - -def create_arg_string(arg_dict): - """ - Function that creates the arg string - """ - - arg_string = '' - for key in arg_dict.keys(): - arg_string += f'{key} {arg_dict[key]} ' - arg_string = arg_string.strip() - return arg_string - -def example_with_loading_default_args(): - """ - Example function loading the default physics args for a binary_c system. Got - it from the binary_grid2 perl module - """ - - # Load args - physics_args = physics_defaults.copy() - - # Manually set M_1, M_2, orbital_period and separation values: - physics_args['M_1'] = 20 - physics_args['M_2'] = 15 - physics_args['separation'] = 0 # 0 = ignored, use period - physics_args['orbital_period'] = 4530.0 - - arg_string = create_arg_string(physics_args) - - arg_string = f'binary_c {arg_string}' - - output = binary_c.run_binary(arg_string) - print (output) - - - -example_with_loading_default_args() \ No newline at end of file +# run_simple_loop_binary() \ No newline at end of file diff --git a/utils/__pycache__/defaults.cpython-36.pyc b/utils/__pycache__/defaults.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d364497266246ceb5cb898c81ad256338ab74946 GIT binary patch literal 4891 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 literal 0 HcmV?d00001 diff --git a/utils/__pycache__/functions.cpython-36.pyc b/utils/__pycache__/functions.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16a46b9804ec090a27bc98609a51840fce995f10 GIT binary patch literal 405 zcmYjNu};G<5IrX?gosvRMCy={4AcVy5<&<G1RDbkNR_H6*rrKal3=@tRPI#%0`UQS z2Y=y}g<qf(=e7b)dhg!(?%5|Fv|8cE*LD9J06r1F;h{Q3sBI(;oV-8}xOW4w&j=p5 z@DUq`GlV)q;$%ji_Y4eS4(HJC%sfMk_liCP#@hv_-WrE6BaiJ{Fl0#Ps10$qPP<`* zaWN^F&dVawS*jx@MXH6uLPV(?L`uuN7%T@ZEJzf4wlNa5vQ5{iV!s#QSi*CrZRpg> zV0|2V2f2wmE-vX)Ii^)cQ*4$AE4iRN69t#~NYT5zNM+5|Ibr)%t+TSA6P=G0y<cyq xx>ap=R@)_i@3@aqArdqjq)j>`AaV<<t9X@{3;d%1dp0<JDEVY8PL^(G{sDCZX7d05 literal 0 HcmV?d00001 diff --git a/defaults.py b/utils/defaults.py similarity index 100% rename from defaults.py rename to utils/defaults.py diff --git a/utils/functions.py b/utils/functions.py new file mode 100644 index 000000000..a116cd908 --- /dev/null +++ b/utils/functions.py @@ -0,0 +1,10 @@ +def create_arg_string(arg_dict): + """ + Function that creates the arg string + """ + + arg_string = '' + for key in arg_dict.keys(): + arg_string += f'{key} {arg_dict[key]} ' + arg_string = arg_string.strip() + return arg_string \ No newline at end of file diff --git a/utils/stellar_types.py b/utils/stellar_types.py new file mode 100644 index 000000000..8f947f28b --- /dev/null +++ b/utils/stellar_types.py @@ -0,0 +1,18 @@ +stellar_type = { + 0: 'low mass main sequence', + 1: 'Main Sequence', + 2: 'Hertzsprung Gap', + 3: 'First Giant Branch', + 4: 'Core Helium Burning', + 5: 'Early Asymptotic Giant Branch', + 6: 'Thermally Pulsing', + 7: 'NAKED_MAIN_SEQUENCE_HELIUM_STAR', + 8: 'NAKED_HELIUM_STAR_HERTZSPRUNG_GAP', + 9: 'NAKED_HELIUM_STAR_GIANT_BRANCH', + 10: 'HELIUM_WHITE_DWARF', + 11: 'CARBON_OXYGEN_WHITE_DWARF', + 12: 'OXYGEN_NEON_WHITE_DWARF', + 13: 'NEUTRON_STAR', + 14: 'BLACK_HOLE', + 15: 'MASSLESS REMNANT' +} \ No newline at end of file -- GitLab