From 1daf160db7783075f917968bc7f226bea4f45be9 Mon Sep 17 00:00:00 2001 From: David Hendriks <davidhendriks93@gmail.com> Date: Sat, 30 Nov 2019 17:02:48 +0000 Subject: [PATCH] added notebook and pdf --- .gitignore | 2 + .../python_API_test-checkpoint.py | 39 ++ README.md | 4 +- .../custom_logging_functions-checkpoint.py | 302 ++++++++ .../functions-checkpoint.py | 233 +++++++ .../.ipynb_checkpoints/examples-checkpoint.py | 167 +++++ ...workshop_example_notebook-checkpoint.ipynb | 642 ++++++++++++++++++ .../notebooks/workshop_example_notebook.ipynb | 642 ++++++++++++++++++ .../notebooks/workshop_example_notebook.pdf | Bin 0 -> 103581 bytes 9 files changed, 2029 insertions(+), 2 deletions(-) create mode 100755 .ipynb_checkpoints/python_API_test-checkpoint.py create mode 100644 binarycpython/utils/.ipynb_checkpoints/custom_logging_functions-checkpoint.py create mode 100644 binarycpython/utils/.ipynb_checkpoints/functions-checkpoint.py create mode 100644 examples/.ipynb_checkpoints/examples-checkpoint.py create mode 100644 examples/notebooks/.ipynb_checkpoints/workshop_example_notebook-checkpoint.ipynb create mode 100644 examples/notebooks/workshop_example_notebook.ipynb create mode 100644 examples/notebooks/workshop_example_notebook.pdf diff --git a/.gitignore b/.gitignore index 24adc5f2e..5c9a1d927 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ output/* *.nfs* *.swp .python-version + +.ipynb_checkpoints/ diff --git a/.ipynb_checkpoints/python_API_test-checkpoint.py b/.ipynb_checkpoints/python_API_test-checkpoint.py new file mode 100755 index 000000000..8fe7e62dc --- /dev/null +++ b/.ipynb_checkpoints/python_API_test-checkpoint.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 + +import binary_c_python_api + +############################################################ +# Test script to run a binary using the binary_c Python +# module. +############################################################ + + +def run_test_binary(): + m1 = 15.0 # Msun + m2 = 14.0 # Msun + separation = 0 # 0 = ignored, use period + orbital_period = 4530.0 # days + eccentricity = 0.0 + metallicity = 0.02 + max_evolution_time = 15000 + buffer = "" + argstring = "binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} ".format( + m1, + m2, + separation, + orbital_period, + eccentricity, + metallicity, + max_evolution_time, + ) + + output = binary_c_python_api.run_binary(argstring) + + print("\n\nBinary_c output:\n\n") + print(output) + + +# binary_star = binary_c_python_api.new_system() + +# print(binary_star) +run_test_binary() \ No newline at end of file diff --git a/README.md b/README.md index 2066d60c2..7d1ac7d8f 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,8 @@ You will require whatever libraries with which binary_c was compiled, as well as 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>:$LD_LIBRARY_PATH -export PYTHONPATH=<full path to directory containing libbinary_c_api.so>:$PYTHONPATH +export LD_LIBRARY_PATH=<full path to root dir of repo>:$LD_LIBRARY_PATH +export PYTHONPATH=<full path to root dir of repo>:$PYTHONPATH ``` Usage notes diff --git a/binarycpython/utils/.ipynb_checkpoints/custom_logging_functions-checkpoint.py b/binarycpython/utils/.ipynb_checkpoints/custom_logging_functions-checkpoint.py new file mode 100644 index 000000000..cd37988bc --- /dev/null +++ b/binarycpython/utils/.ipynb_checkpoints/custom_logging_functions-checkpoint.py @@ -0,0 +1,302 @@ +import os +import textwrap +import subprocess +import socket +import tempfile +import ctypes + +def autogen_C_logging_code(logging_dict): + """ + Function that autogenerates PRINTF statements for binaryc. intput is a dictionary where the key is the header of that logging line and items which are lists of parameters\ + that will be put in that logging line + + Example:: + + {'MY_STELLAR_DATA': + [ + 'model.time', + 'star[0].mass', + 'model.probability', + 'model.dt' + ] + } + """ + + # Check if the input is of the correct form + if not type(logging_dict) == dict: + print("Error: please use a dictionary as input") + return None + + code = "" + # Loop over dict keys + for key in logging_dict: + logging_dict_entry = logging_dict[key] + + # Check if item is of correct type: + if type(logging_dict_entry) == list: + + # Construct print statement + code += 'Printf("{}'.format(key) + code += " {}".format("%g " * len(logging_dict_entry)) + code = code.strip() + code += '\\n"' + + # Add format keys + for param in logging_dict_entry: + code += ",((double)stardata->{})".format(param) + code += ");\n" + + else: + print( + "Error: please use a list for the list of parameters that you want to have logged" + ) + code = code.strip() + # print("MADE AUTO CODE\n\n{}\n\n{}\n\n{}\n".format('*'*60, repr(code), '*'*60)) + + return code + + +#################################################################################### +def binary_c_log_code(code): + """ + Function to construct the code to construct the custom logging function + """ + custom_logging_function_string = """\ +#pragma push_macro(\"MAX\") +#pragma push_macro(\"MIN\") +#undef MAX +#undef MIN +#include \"binary_c.h\" + +// add visibility __attribute__ ((visibility ("default"))) to it +void binary_c_API_function custom_output_function(struct stardata_t * stardata); +void binary_c_API_function custom_output_function(struct stardata_t * stardata) +{{ + // struct stardata_t * stardata = (struct stardata_t *)x; + {}; +}} + +#undef MAX +#undef MIN +#pragma pop_macro(\"MIN\") +#pragma pop_macro(\"MAX\")\ + """.format( + code + ) + + # print(repr(textwrap.dedent(custom_logging_function_string))) + return textwrap.dedent(custom_logging_function_string) + + +def binary_c_write_log_code(code, filename): + """ + Function to write the generated logging code to a file + """ + + cwd = os.getcwd() + + filePath = os.path.join(cwd, filename) + if os.path.exists(filePath): + try: + os.remove(filePath) + except: + print("Error while deleting file {}".format(filePath)) + + with open(filePath, "w") as f: + f.write(code) + + +def from_binary_c_config(config_file, flag): + """ + Function to run the binaryc_config command with flags + """ + + res = subprocess.check_output( + "{config_file} {flag}".format(config_file=config_file, flag=flag), + shell=True, + stderr=subprocess.STDOUT, + ) + + # convert and chop off newline + res = res.decode("utf").rstrip() + return res + + +def return_compilation_dict(verbose=False): + """ + Function to build the compile command for the shared library + + inspired by binary_c_inline_config command in perl + + TODO: this function still has some cleaning up to do wrt default values for the compile command + # https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/ + + + returns: + - string containing the command to build the shared library + """ + + # use binary_c-config to get necessary flags + BINARY_C_DIR = os.getenv("BINARY_C") + if BINARY_C_DIR: + BINARY_C_CONFIG = os.path.join(BINARY_C_DIR, "binary_c-config") + BINARY_C_SRC_DIR = os.path.join(BINARY_C_DIR, "src") + # TODO: build in check to see whether the file exists + else: + raise NameError("Envvar BINARY_C doesnt exist") + return None + + # TODO: make more options for the compiling + cc = from_binary_c_config(BINARY_C_CONFIG, "cc") + + # Check for binary_c + BINARY_C_EXE = os.path.join(BINARY_C_DIR, "binary_c") + if not os.path.isfile(BINARY_C_EXE): + print("We require binary_c executable; have you built binary_c?") + raise NameError("BINARY_C executable doesnt exist") + + # TODO: debug + libbinary_c = "-lbinary_c" + binclibs = from_binary_c_config(BINARY_C_CONFIG, "libs") + libdirs = "{} -L{}".format( + from_binary_c_config(BINARY_C_CONFIG, "libdirs"), BINARY_C_SRC_DIR + ) + bincflags = from_binary_c_config(BINARY_C_CONFIG, "cflags") + bincincdirs = from_binary_c_config(BINARY_C_CONFIG, "incdirs") + + # combine + binclibs = " {} {} {}".format(libdirs, libbinary_c, binclibs) + + # setup defaults: + defaults = { + "cc": "gcc", # default compiler + "ccflags": bincflags, + "ld": "ld", # 'ld': $Config{ld}, # default linker + "debug": 0, + "inc": "{} -I{}".format(bincincdirs, BINARY_C_SRC_DIR), + # inc => ' '.($Config{inc}//' ').' '.$bincincdirs." -I$srcdir ", # include the defaults plus # GSL and binary_c + # 'libname': libname, # libname is usually just binary_c corresponding to libbinary_c.so + "libs": binclibs, + } + + # set values with defaults. TODO: make other input possile. + ld = defaults["ld"] + debug = defaults["debug"] + inc = defaults[ + "inc" + ] # = ($ENV{BINARY_GRID2_INC} // $defaults{inc}).' '.($ENV{BINARY_GRID2_EXTRAINC} // ''); + libs = defaults[ + "libs" + ] # = ($ENV{BINARY_GRID2_LIBS} // $defaults{libs}).' '.($ENV{BINARY_GRID2_EXTRALIBS}//''); + ccflags = defaults[ + "ccflags" + ] # = $ENV{BINARY_GRID2_CCFLAGS} // ($defaults{ccflags}) . ($ENV{BINARY_GRID2_EXTRACCFLAGS} // ''); + + # you must define _SEARCH_H to prevent it being loaded twice + ccflags += " -shared -D_SEARCH_H" + + # remove the visibility=hidden for this compilation + ccflags = ccflags.replace("-fvisibility=hidden", "") + + # ensure library paths to the front of the libs: + libs_content = libs.split(" ") + library_paths = [el for el in libs_content if el.startswith("-L")] + non_library_paths = [ + el for el in libs_content if (not el.startswith("-L") and not el == "") + ] + libs = "{} {}".format(" ".join(library_paths), " ".join(non_library_paths)) + + + if verbose: + print( + "Building shared library for custom logging with (binary_c.h) at {} on {}\n".format( + BINARY_C_SRC_DIR, socket.gethostname() + ) + ) + print( + "With options:\n\tcc = {cc}\n\tccflags = {ccflags}\n\tld = {ld}\n\tlibs = {libs}\n\tinc = {inc}\n\n".format( + cc=cc, ccflags=ccflags, ld=ld, libs=libs, inc=inc + ) + ) + + return {"cc": cc, "ld": ld, "ccflags": ccflags, "libs": libs, "inc": inc} + + +def compile_shared_lib(code, sourcefile_name, outfile_name, verbose=False): + """ + Function to write the custom logging code to a file and then compile it. + """ + + # Write code to file + binary_c_write_log_code(code, sourcefile_name) + + # create compilation command + compilation_dict = return_compilation_dict() + + # Construct full command + command = "{cc} {ccflags} {libs} -o {outfile_name} {sourcefile_name} {inc}".format( + cc=compilation_dict["cc"], + ccflags=compilation_dict["ccflags"], + libs=compilation_dict["libs"], + outfile_name=outfile_name, + sourcefile_name=sourcefile_name, + inc=compilation_dict["inc"], + ) + + # remove extra whitespaces: + command = " ".join(command.split()) + + # Execute compilation + if verbose: + print("Executing following command:\n{command}".format(command=command)) + res = subprocess.check_output("{command}".format(command=command), shell=True) + + if verbose: + if res: + print("Output of compilation command:\n{}".format(res)) + + +def temp_custom_logging_dir(): + """ + Function to return the path the custom logging library shared object and script will be written to. + + Makes use of os.makedirs exist_ok which requires python 3.2+ + """ + + tmp_dir = tempfile.gettempdir() + path = os.path.join(tmp_dir, "binary_c_python") + + # + os.makedirs(path, exist_ok=True) + + return path + + +def create_and_load_logging_function(custom_logging_code): + """ + Function to automatically compile the shared library with the given custom logging code and load it with ctypes + + returns: + memory adress of the custom logging function in a int type. + """ + + # + compile_shared_lib( + custom_logging_code, + sourcefile_name=os.path.join(temp_custom_logging_dir(), "custom_logging.c"), + outfile_name=os.path.join(temp_custom_logging_dir(), "libcustom_logging.so"), + ) + + # Loading library + dll1 = ctypes.CDLL("libgslcblas.so", mode=ctypes.RTLD_GLOBAL) + dll2 = ctypes.CDLL("libgsl.so", mode=ctypes.RTLD_GLOBAL) + dll3 = ctypes.CDLL("libbinary_c.so", mode=ctypes.RTLD_GLOBAL) + libmean = ctypes.CDLL( + os.path.join(temp_custom_logging_dir(), "libcustom_logging.so"), + mode=ctypes.RTLD_GLOBAL, + ) # loads the shared library + + # Get memory adress of function. mimicking a pointer + func_memaddr = ctypes.cast(libmean.custom_output_function, ctypes.c_void_p).value + + return func_memaddr diff --git a/binarycpython/utils/.ipynb_checkpoints/functions-checkpoint.py b/binarycpython/utils/.ipynb_checkpoints/functions-checkpoint.py new file mode 100644 index 000000000..d7fd123a3 --- /dev/null +++ b/binarycpython/utils/.ipynb_checkpoints/functions-checkpoint.py @@ -0,0 +1,233 @@ +from collections import defaultdict + +import binary_c_python_api +from binarycpython.utils.custom_logging_functions import ( + create_and_load_logging_function, +) + + +def create_arg_string(arg_dict): + """ + Function that creates the arg string + """ + arg_string = "" + for key in arg_dict.keys(): + arg_string += "{key} {value} ".format(key=key, value=arg_dict[key]) + arg_string = arg_string.strip() + return arg_string + + +def get_defaults(): + """ + Function that calls the binaryc get args function and cast it into a dictionary + All the values are strings + """ + default_output = binary_c_python_api.return_arglines() + default_dict = {} + + for default in default_output.split("\n"): + if not default in ["__ARG_BEGIN", "__ARG_END", ""]: + key, value = default.split(" = ") + + # Filter out NULLS (not compiled anyway) + if not value in ["NULL", "Function"]: + if not value == "": + default_dict[key] = value + return default_dict + + +def get_arg_keys(): + """ + Function that return the list of possible keys to give in the arg string + """ + + return get_defaults().keys() + + +def run_system(**kwargs): + """ + Wrapper to run a system with settings + + This function determines which underlying python-c api function will be called based upon the arguments that are passed via kwargs. + + - if custom_logging_code or custom_logging_dict is included in the kwargs then it will + - if + + """ + + # Load default args + args = get_defaults() + if "custom_logging_code" in kwargs: + # Use kwarg value to override defaults and add new args + for key in kwargs.keys(): + if not key == "custom_logging_code": + args[key] = kwargs[key] + + # Generate library and get memaddr + func_memaddr = create_and_load_logging_function(kwargs["custom_logging_code"]) + + # Construct arguments string and final execution string + arg_string = create_arg_string(args) + arg_string = "binary_c {}".format(arg_string) + + # Run it and get output + output = binary_c_python_api.run_binary_custom_logging(arg_string, func_memaddr) + return output + + elif "log_filename" in kwargs: + # Use kwarg value to override defaults and add new args + for key in kwargs.keys(): + args[key] = kwargs[key] + + # Construct arguments string and final execution string + arg_string = create_arg_string(args) + arg_string = "binary_c {}".format(arg_string) + + # Run it and get output + output = binary_c_python_api.run_binary_with_logfile(arg_string) + return output + + else: # run the plain basic type + + # Use kwarg value to override defaults and add new args + for key in kwargs.keys(): + args[key] = kwargs[key] + + # Construct arguments string and final execution string + arg_string = create_arg_string(args) + arg_string = "binary_c {}".format(arg_string) + + # Run it and get output + output = binary_c_python_api.run_binary(arg_string) + + return output + + +def run_system_with_log(**kwargs): + """ + Wrapper to run a system with settings AND logs the files to a designated place defined by the log_filename parameter. + """ + + # Load default args + args = get_defaults() + # args = {} + + # For example + # physics_args['M_1'] = 20 + # physics_args['separation'] = 0 # 0 = ignored, use period + # physics_args['orbital_period'] = 100000000000 # To make it single + + # Use kwarg value to override defaults and add new args + for key in kwargs.keys(): + args[key] = kwargs[key] + + # Construct arguments string and final execution string + arg_string = create_arg_string(args) + arg_string = "binary_c {}".format(arg_string) + + # print(arg_string) + + # Run it and get output + buffer = "" + output = binary_c_python_api.run_binary_with_log(arg_string) + + return output + + +def parse_output(output, selected_header): + """ + Function that parses output of binary_c: + + This function works in two cases: + if the caught line contains output like 'example_header time=12.32 mass=0.94 ..' + or if the line contains output like 'example_header 12.32 0.94' + + You can give a 'selected_header' to catch any line that starts with that. + Then the values will be put into a dictionary. + + TODO: Think about exporting to numpy array or pandas instead of a defaultdict + """ + + value_dicts = [] + val_lists = [] + + # split output on newlines + for i, line in enumerate(output.split("\n")): + # Skip any blank lines + if not line == "": + split_line = line.split() + + # Select parts + header = split_line[0] + values_list = split_line[1:] + + # print(values_list) + # Catch line starting with selected header + if header == selected_header: + # Check if the line contains '=' symbols: + value_dict = {} + if all('=' in el for el in values_list): + for el in values_list: + key, val = el.split("=") + value_dict[key.strip()] = val.strip() + value_dicts.append(value_dict) + else: + if any('=' in el for el in values_list): + raise ValueError('Caught line contains some = symbols but not all of them do. aborting run') + else: + for i, val in enumerate(values_list): + value_dict[i] = val + value_dicts.append(value_dict) + + if len(value_dicts) == 0: + print( + "Sorry, didnt find any line matching your header {}".format(selected_header) + ) + return None + + keys = value_dicts[0].keys() + + # Construct final dict. + final_values_dict = defaultdict(list) + for value_dict in value_dicts: + for key in keys: + final_values_dict[key].append(value_dict[key]) + + return final_values_dict + + + +def load_logfile(logfile): + with open(logfile, 'r') as f: + logfile_data = f.readlines() + + time_list = [] + m1_list = [] + m2_list = [] + k1_list = [] + k2_list = [] + sep_list = [] + ecc_list = [] + rel_r1_list = [] + rel_r2_list = [] + event_list = [] + + random_seed = logfile_data[0].split()[-2] + random_count = logfile_data[0].split()[-1] + probability = logfile_data[-1].split() + + for line in logfile_data[1:-1]: + split_line = line.split() + + time_list.append(split_line[0]) + m1_list.append(split_line[1]) + m2_list.append(split_line[2]) + k1_list.append(split_line[3]) + k2_list.append(split_line[4]) + sep_list.append(split_line[5]) + ecc_list.append(split_line[6]) + rel_r1_list.append(split_line[7]) + rel_r2_list.append(split_line[8]) + event_list.append(' '.join(split_line[9:])) + + print(event_list) \ No newline at end of file diff --git a/examples/.ipynb_checkpoints/examples-checkpoint.py b/examples/.ipynb_checkpoints/examples-checkpoint.py new file mode 100644 index 000000000..ab728b6e4 --- /dev/null +++ b/examples/.ipynb_checkpoints/examples-checkpoint.py @@ -0,0 +1,167 @@ +#!/usr/bin/python3 +import os +import sys + +import binary_c_python_api + +from binarycpython.utils.functions import run_system, parse_output +from binarycpython.utils.custom_logging_functions import ( + autogen_C_logging_code, + binary_c_log_code, +) + +""" +Very basic scripts to run a binary system and print the output. + +Use these as inspiration/base. +""" + + +def run_example_binary(): + """ + Function to run a binary system. Very basic approach which directly adresses the run_binary(..) python-c wrapper function. + """ + + m1 = 15.0 # Msun + m2 = 14.0 # Msun + separation = 0 # 0 = ignored, use period + orbital_period = 4530.0 # days + eccentricity = 0.0 + metallicity = 0.02 + max_evolution_time = 15000 # Myr. You need to include this argument. + + # + argstring = "binary_c M_1 {m1} M_2 {m2} separation {separation} orbital_period {orbital_period} \ + eccentricity {eccentricity} metallicity {metallicity} \ + max_evolution_time {max_evolution_time}".format( + m1=m1, + m2=m2, + separation=separation, + orbital_period=orbital_period, + eccentricity=eccentricity, + metallicity=metallicity, + max_evolution_time=max_evolution_time, + ) + output = binary_c_python_api.run_binary(argstring) + print(output) + +run_example_binary() + + +def run_example_binary_with_run_system(): + """ + This function serves as an example on the function run_system and parse_output. + There is more functionality with this method and several tasks are done behind the scene. + + Requires pandas, numpy to run. + + run_system: mostly just makes passing arguments to the function easier. It also loads all the necessary defaults in the background + parse_output: Takes the raw output of binary_c and selects those lines that start with the given header. + Note, if you dont use the custom_logging functionality binary_c should be configured to have output that starts with that given header + + The parsing of the output only works correctly if either all of the values are described inline like `mass=<number>' or none of them are. + """ + + import pandas as pd + import numpy as np + + # Run system. all arguments can be given as optional arguments. + output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100000000000) + + # print(output) + + # Catch results that start with a given header. (Mind that binary_c has to be configured to print them if your not using a custom logging function) + result_example_header_1 = parse_output(output, selected_header="example_header_1") + result_example_header_2 = parse_output(output, selected_header="example_header_2") + + # print(result_example_header_1) + + #### Now do whatever you want with it: + # Put it in numpy arrays + # t_res = np.asarray(result_example_header['t'], dtype=np.float64, order='C') + # m_res = np.asarray(result_example_header['mass'], dtype=np.float64, order='C') + + # Or put them into a pandas array + + + # Cast the data into a dataframe. + # This example automatically catches the column names because the binary_c output line is constructed as 'example_header_1 time=<number>..' + df = pd.DataFrame.from_dict(result_example_header_1, dtype=np.float64) + print(df) + + # This example has column headers which are numbered, but we can override that with custom headers. + df2 = pd.DataFrame.from_dict(result_example_header_2, dtype=np.float64) + df2.columns=['time', 'mass_1', 'mass_2', 'st1', 'st2', 'sep', 'ecc'] + print(df2) + + # print(df) + # sliced_df = df[df.t < 1000] # Cut off late parts of evolution + # print(sliced_df[["t","m1"]]) + + # Some routine to plot. + +run_example_binary_with_run_system() + +def run_example_binary_with_custom_logging(): + """ + Function that will use a automatically generated piece of logging code. Compile it, load it + into memory and run a binary system. See run_system on how several things are done in the background here. + """ + + import pandas as pd + import numpy as np + + # generate logging lines. Here you can choose whatever you want to have logged, and with what header + # this generates working print statements + logging_line = autogen_C_logging_code( + {"MY_STELLAR_DATA": ["model.time", "star[0].mass"],} + ) + # OR + # You can also decide to `write` your own logging_line, which allows you to write a more complex logging statement with conditionals. + logging_line = 'Printf("MY_STELLAR_DATA time=%g mass=%g\\n", stardata->model.time, stardata->star[0].mass)' + + # Generate entire shared lib code around logging lines + custom_logging_code = binary_c_log_code(logging_line) + + # Run system. all arguments can be given as optional arguments. the custom_logging_code is one of them and will be processed automatically. + output = run_system( + M_1=1, + metallicity=0.002, + M_2=0.1, + separation=0, + orbital_period=100000000000, + custom_logging_code=custom_logging_code, + ) + + # Catch results that start with a given header. (Mind that binary_c has to be configured to print them if your not using a custom logging function) + # DOESNT WORK YET if you have the line autogenerated. + result_example_header = parse_output(output, "MY_STELLAR_DATA") + + # Cast the data into a dataframe. + df = pd.DataFrame.from_dict(result_example_header, dtype=np.float64) + + # Do whatever you like with the dataframe. + print(df) + +run_example_binary_with_custom_logging() + +def run_example_binary_with_writing_logfile(): + """ + Same as above but when giving the log_filename argument the log filename will be written + """ + + import pandas as pd + import numpy as np + import tempfile + + # Run system. all arguments can be given as optional arguments. + output = run_system( + M_1=10, + M_2=20, + separation=0, + orbital_period=100000000000, + log_filename=tempfile.gettempdir() + "/test_log.txt", + + ) + +run_example_binary_with_writing_logfile() \ No newline at end of file diff --git a/examples/notebooks/.ipynb_checkpoints/workshop_example_notebook-checkpoint.ipynb b/examples/notebooks/.ipynb_checkpoints/workshop_example_notebook-checkpoint.ipynb new file mode 100644 index 000000000..88999e71e --- /dev/null +++ b/examples/notebooks/.ipynb_checkpoints/workshop_example_notebook-checkpoint.ipynb @@ -0,0 +1,642 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "# Binary_c and python example notebook\n", + "The following notebook servers as an example of how the binary_c python wrapper works and how it could be used.\n", + "\n", + "By: David Hendriks 30 nov 2019" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "import binarycpython\n", + "import binary_c_python_api" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "## Core api wrapper functions:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### run_binary()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Binary_c output:\n", + "\n", + "\n", + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "example_header_1 time=1e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 1e-07 15 14 1 1 3540.3 0\n", + "example_header_1 time=2e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 2e-07 15 14 1 1 3540.3 0\n" + ] + } + ], + "source": [ + "m1 = 15.0 # Msun\n", + "m2 = 14.0 # Msun\n", + "separation = 0 # 0 = ignored, use period\n", + "orbital_period = 4530.0 # days\n", + "eccentricity = 0.0\n", + "metallicity = 0.02\n", + "max_evolution_time = 15000 # You need to set this!\n", + "\n", + "argstring = \"binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} \".format(\n", + " m1,\n", + " m2,\n", + " separation,\n", + " orbital_period,\n", + " eccentricity,\n", + " metallicity,\n", + " max_evolution_time,\n", + ")\n", + "\n", + "output = binary_c_python_api.run_binary(argstring)\n", + "\n", + "print(\"\\n\\nBinary_c output:\\n\\n\")\n", + "print('\\n'.join(output.split('\\n')[:10]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "### run_binary_with_log" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + " TIME M1 M2 K1 K2 SEP ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=1748 RANDOM_COUNT=0\n", + " 0.0000 10.000 20.000 1 1 2.8176e+08 0.00 0.000 0.000 INITIAL \n", + " 8.8656 9.980 19.203 1 2 2.8966e+08 0.00 0.000 0.000 TYPE_CHNGE\n", + " 8.8814 9.980 19.185 1 4 2.8983e+08 0.00 0.000 0.000 TYPE_CHNGE\n", + " 9.8724 9.977 10.122 1 5 4.2066e+08 0.00 0.000 0.000 TYPE_CHNGE\n", + " 9.8834 9.977 9.974 1 5 4.2379e+08 0.00 0.000 0.000 q-inv\n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 Randbuf=42123 - d48r(0)=0.976476 - d48r(1)=0.214027 - d48r(2)=0.638803 - d48r(3)=0.00325497 - d48r(4)=0.931833 \n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 SN kick II (SN type 12 12, pre-explosion M=8.50996 Mc=6.81718 type=5) -> kick 1(190) vk=132.601 vr=0.0878271 omega=5.85488 phi=-1.45663 -> vn=132.592 ; final sep -125.894 ecc -1 (random count 0) - Runaway v=(0,0,0) |v|=0 : companion v=(0,0,0), |v|=0 ; \n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 DISRUPT \n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 SN\n", + " 24.4615 9.890 1.621 2 13 -125.89 -1.00 0.000 0.000 OFF_MS\n", + " 24.4615 9.890 1.621 2 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 24.5257 9.887 1.621 3 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 24.5353 9.886 1.621 4 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 27.3558 9.424 1.621 5 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 d48r(5)=0.99127 - d48r(6)=0.231093 - d48r(7)=0.881928 - d48r(8)=0.603217 \n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 SN kick II (SN type 12 12, pre-explosion M=9.30206 Mc=2.87012 type=5) -> kick 1(190) vk=663.531 vr=0 omega=3.79013 phi=0.869266 -> vn=663.531 ; final sep -125.894 ecc -1 (random count 5) - Runaway v=(0,0,0) |v|=0 : companion v=(0,0,0), |v|=0 ; \n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 q-inv\n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 SN\n", + " 15000.0000 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 MAX_TIME\n", + "Probability : 1\n", + "\n" + ] + } + ], + "source": [ + "import tempfile\n", + "import os\n", + "\n", + "m1 = 15.0 # Msun\n", + "m2 = 14.0 # Msun\n", + "separation = 0 # 0 = ignored, use period\n", + "orbital_period = 4530.0 # days\n", + "eccentricity = 0.0\n", + "metallicity = 0.02\n", + "max_evolution_time = 15000 # You need to set this!\n", + "log_filename=tempfile.gettempdir() + \"/test_log.txt\"\n", + "\n", + "argstring = \"binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} log_filename {7} \".format(\n", + " m1,\n", + " m2,\n", + " separation,\n", + " orbital_period,\n", + " eccentricity,\n", + " metallicity,\n", + " max_evolution_time,\n", + " log_filename,\n", + ")\n", + "\n", + "output = binary_c_python_api.run_binary(argstring)\n", + "\n", + "print(os.path.exists(log_filename))\n", + "\n", + "with open(log_filename, 'r') as f:\n", + " print(f.read())\n", + "\n", + "\n", + "# print(\"\\n\\nBinary_c output:\\n\\n\")\n", + "# print(output)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### run binary with custom logging line" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "MY_STELLAR_DATA time=0 mass=15\n", + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "MY_STELLAR_DATA time=0 mass=15\n", + "example_header_1 time=1e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 1e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=1e-07 mass=15\n", + "example_header_1 time=2e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 2e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=2e-07 mass=15\n", + "example_header_1 time=3e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 3e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=3e-07 mass=15\n", + "example_header_1 time=4e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 4e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=4e-07 mass=15\n" + ] + } + ], + "source": [ + "from binarycpython.utils import custom_logging_functions\n", + "# generate logging lines. Here you can choose whatever you want to have logged, and with what header\n", + "# this generates working print statements\n", + "logging_line = custom_logging_functions.autogen_C_logging_code(\n", + " {\"MY_STELLAR_DATA\": [\"model.time\", \"star[0].mass\"],}\n", + ")\n", + "# OR\n", + "# You can also decide to `write` your own logging_line, which allows you to write a more complex logging statement with conditionals.\n", + "logging_line = 'Printf(\"MY_STELLAR_DATA time=%g mass=%g\\\\n\", stardata->model.time, stardata->star[0].mass)'\n", + "\n", + "# Generate entire shared lib code around logging lines\n", + "custom_logging_code = custom_logging_functions.binary_c_log_code(logging_line)\n", + "# print(custom_logging_code)\n", + "\n", + "# Make this code into a shared library and the function into memory\n", + "func_memaddr = custom_logging_functions.create_and_load_logging_function(custom_logging_code)\n", + "\n", + "# Run system with custom logging code\n", + "m1 = 15.0 # Msun\n", + "m2 = 14.0 # Msun\n", + "separation = 0 # 0 = ignored, use period\n", + "orbital_period = 4530.0 # days\n", + "eccentricity = 0.0\n", + "metallicity = 0.02\n", + "max_evolution_time = 15000 # You need to set this!\n", + "\n", + "argstring = \"binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} \".format(\n", + " m1,\n", + " m2,\n", + " separation,\n", + " orbital_period,\n", + " eccentricity,\n", + " metallicity,\n", + " max_evolution_time,\n", + ")\n", + "\n", + "output = binary_c_python_api.run_binary_custom_logging(argstring, func_memaddr)\n", + "print('\\n'.join(output.split('\\n')[:20]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "## Using utils functions\n", + "In the utils.functions there are some functions that make it easier to interact with the core api functions. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### run_system()\n", + "This function serves as an example on the function run_system and parse_output. \n", + "There is more functionality with this method and several tasks are done behind the scene.\n", + "\n", + "Requires pandas, numpy to run.\n", + "\n", + "run_system: mostly just makes passing arguments to the function easier. It also loads all the necessary defaults in the background\n", + "parse_output: Takes the raw output of binary_c and selects those lines that start with the given header. \n", + "Note, if you dont use the custom_logging functionality binary_c should be configured to have output that starts with that given header\n", + "\n", + "The parsing of the output only works correctly if either all of the values are described inline like `mass=<number>' or none of them are. " + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "example_header_1 time=0 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 0 10 20 1 1 2.81762e+08 0\n", + "INITIAL_GRID 10 20 1e+11 0.02 1 0\n", + "example_header_1 time=0 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 0 10 20 1 1 2.81762e+08 0\n", + "INITIAL_GRID 10 20 1e+11 0.02 1 0\n", + "example_header_1 time=1e-07 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 1e-07 10 20 1 1 2.81762e+08 0\n", + "example_header_1 time=2e-07 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 2e-07 10 20 1 1 2.81762e+08 0\n", + "\n", + "\n", + "\n", + " time mass_1 mass_2 st1 st2 sep ecc\n", + "0 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "1 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "2 1.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "3 2.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "4 3.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "... ... ... ... ... ... ... ...\n", + "3927 1.102750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3928 1.202750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3929 1.302750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3930 1.402750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3931 1.500000e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "\n", + "[3932 rows x 7 columns]\n", + " time mass_1 mass_2 st1 st2 sep ecc\n", + "0 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "1 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "2 1.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "3 2.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "4 3.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "... ... ... ... ... ... ... ...\n", + "3927 1.102750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3928 1.202750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3929 1.302750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3930 1.402750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3931 1.500000e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "\n", + "[3932 rows x 7 columns]\n" + ] + } + ], + "source": [ + "from binarycpython.utils.functions import run_system, parse_output\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "# Run system. all arguments can be given as optional arguments.\n", + "output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100000000000)\n", + "\n", + "print('\\n'.join(output.split('\\n')[:10]))\n", + "\n", + "# Catch results that start with a given header. (Mind that binary_c has to be configured to print them if your not using a custom logging function)\n", + "result_example_header_1 = parse_output(output, selected_header=\"example_header_1\")\n", + "result_example_header_2 = parse_output(output, selected_header=\"example_header_2\")\n", + "\n", + "# print(result_example_header_1)\n", + "\n", + "#### Now do whatever you want with it:\n", + "# Or put them into a pandas array\n", + "\n", + "# Cast the data into a dataframe.\n", + "# This example automatically catches the column names because the binary_c output line is constructed as 'example_header_1 time=<number>..'\n", + "print('\\n\\n')\n", + "\n", + "df = pd.DataFrame.from_dict(result_example_header_1, dtype=np.float64)\n", + "print(df)\n", + "\n", + "# This example has column headers which are numbered, but we can override that with custom headers.\n", + "df2 = pd.DataFrame.from_dict(result_example_header_2, dtype=np.float64)\n", + "df2.columns=['time', 'mass_1', 'mass_2', 'st1', 'st2', 'sep', 'ecc']\n", + "print(df2)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "### run_system() and custom logging\n", + "Function that will use a automatically generated piece of logging code. Compile it, load it \n", + "into memory and run a binary system. See run_system on how several things are done in the background here.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " time mass\n", + "0 0.000000e+00 1.000000\n", + "1 0.000000e+00 1.000000\n", + "2 1.000000e-07 1.000000\n", + "3 2.000000e-07 1.000000\n", + "4 3.000000e-07 1.000000\n", + "... ... ...\n", + "3630 1.131680e+04 0.627748\n", + "3631 1.231680e+04 0.627748\n", + "3632 1.331680e+04 0.627748\n", + "3633 1.431680e+04 0.627748\n", + "3634 1.500000e+04 0.627748\n", + "\n", + "[3635 rows x 2 columns]\n" + ] + } + ], + "source": [ + "from binarycpython.utils.custom_logging_functions import (\n", + " autogen_C_logging_code,\n", + " binary_c_log_code,\n", + ")\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "# generate logging lines. Here you can choose whatever you want to have logged, and with what header\n", + "# this generates working print statements\n", + "logging_line = autogen_C_logging_code(\n", + " {\"MY_STELLAR_DATA\": [\"model.time\", \"star[0].mass\"],}\n", + ")\n", + "# OR\n", + "# You can also decide to `write` your own logging_line, which allows you to write a more complex logging statement with conditionals.\n", + "logging_line = 'Printf(\"MY_STELLAR_DATA time=%g mass=%g\\\\n\", stardata->model.time, stardata->star[0].mass)'\n", + "\n", + "# Generate entire shared lib code around logging lines\n", + "custom_logging_code = binary_c_log_code(logging_line)\n", + "\n", + "# Run system. all arguments can be given as optional arguments. the custom_logging_code is one of them and will be processed automatically.\n", + "output = run_system(\n", + " M_1=1,\n", + " metallicity=0.002,\n", + " M_2=0.1,\n", + " separation=0,\n", + " orbital_period=100000000000,\n", + " custom_logging_code=custom_logging_code,\n", + ")\n", + "\n", + "# Catch results that start with a given header. (Mind that binary_c has to be configured to print them if your not using a custom logging function)\n", + "# DOESNT WORK YET if you have the line autogenerated.\n", + "result_example_header = parse_output(output, \"MY_STELLAR_DATA\")\n", + "\n", + "# Cast the data into a dataframe.\n", + "df = pd.DataFrame.from_dict(result_example_header, dtype=np.float64)\n", + "\n", + "# Do whatever you like with the dataframe.\n", + "print(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "## Other example\n", + "Checking how much mass stars lose on the main sequence." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "def run_and_calc_mass(**kwargs):\n", + " \"\"\"\n", + " Function to run a given system and look at the mass lost in the main sequence of the star\n", + " \"\"\"\n", + " # start = time.time()\n", + " output = run_system(**kwargs)\n", + " result = parse_output(output, 'example_header_1')\n", + " # stop = time.time()\n", + " # print(\"Took {:.2f}s to run single system\".format(stop-start))\n", + " # print(\"The following keys are present in the results:\\n{}\".format(result.keys()))\n", + " # print(len(result))\n", + "\n", + " #### Now do whatever you want with it: \n", + "\n", + " # Cast the data into a dataframe. \n", + " df = pd.DataFrame.from_dict(result, dtype=np.float64)\n", + "\n", + " # Get last change moment\n", + " last_st = df['st1'].unique()[-1]\n", + " last_stellar_type_change_time_1 = df[df.st1==last_st]['time'].iloc[0]\n", + "\n", + " # slice to get that last time\n", + " sliced_df = df[df.time < last_stellar_type_change_time_1] # Cut off late parts of evolution\n", + "\n", + " main_sequence = sliced_df[sliced_df.st1==1]\n", + " \n", + " initial_mass = main_sequence.iloc[0].mass_1\n", + " final_mass = main_sequence.iloc[-1].mass_1\n", + " \n", + " initial_time = main_sequence.iloc[0].time\n", + " final_time = main_sequence.iloc[-1].time\n", + " \n", + " mass_lost = initial_mass - final_mass\n", + " fraction = mass_lost/initial_mass\n", + "\n", + " # Return the mass fraction (wrt initial mass)\n", + " return fraction\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Took 12.005768775939941s\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "metallicity_002 = 0.02\n", + "metallicity_001 = 0.01\n", + "metallicity_0002 = 0.002\n", + "\n", + "mass_range = np.arange(1, 25, .5)\n", + "\n", + "start = time.time()\n", + "fractions_z002 = [run_and_calc_mass(M_1=mass, \n", + " M_2=10, \n", + " separation=0, \n", + " orbital_period=100000000000, \n", + " metallicity=metallicity_002, \n", + " effective_metallicity=metallicity_002) \n", + " for mass in mass_range]\n", + "\n", + "fractions_z001 = [run_and_calc_mass(M_1=mass, \n", + " M_2=10, \n", + " separation=0, \n", + " orbital_period=100000000000, \n", + " metallicity=metallicity_001, \n", + " effective_metallicity=metallicity_001) \n", + " for mass in mass_range]\n", + "\n", + "fractions_z0002 = [run_and_calc_mass(M_1=mass, \n", + " M_2=10, \n", + " separation=0, \n", + " orbital_period=100000000000, \n", + " metallicity=metallicity_0002, \n", + " effective_metallicity=metallicity_0002) \n", + " for mass in mass_range]\n", + "stop = time.time()\n", + "print(\"Took {}s\".format(stop-start))" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 864x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(12,8))\n", + "\n", + "ax.plot(mass_range, fractions_z002, '--', label='Z=0.02')\n", + "ax.plot(mass_range, fractions_z001, '-.', label='Z=0.01')\n", + "ax.plot(mass_range, fractions_z0002, '-', label='Z=0.002')\n", + "\n", + "ax.set_xlabel(r'Initial Mass ($M_{\\odot}$)', fontsize=18)\n", + "ax.set_ylabel(r'Fraction of total initial mass lost on main sequence', fontsize=18)\n", + "ax.set_title('Fraction of total initial mass lost during main sequence for different metallicities', fontsize=18)\n", + "ax.legend()\n", + "ax.set_yscale('log')\n", + "#save_loop(name='plots/mass_loss_MS.{format}', formats=['pdf', 'png', 'eps'], bbox_inches='tight')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/workshop_example_notebook.ipynb b/examples/notebooks/workshop_example_notebook.ipynb new file mode 100644 index 000000000..ced84285b --- /dev/null +++ b/examples/notebooks/workshop_example_notebook.ipynb @@ -0,0 +1,642 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "# Binary_c and python example notebook\n", + "The following notebook servers as an example of how the binary_c python wrapper works and how it could be used.\n", + "\n", + "By: David Hendriks 30 nov 2019" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "import binarycpython\n", + "import binary_c_python_api" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "false" + }, + "source": [ + "## Core api wrapper functions:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "### run_binary()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Binary_c output:\n", + "\n", + "\n", + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "example_header_1 time=1e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 1e-07 15 14 1 1 3540.3 0\n", + "example_header_1 time=2e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 2e-07 15 14 1 1 3540.3 0\n" + ] + } + ], + "source": [ + "m1 = 15.0 # Msun\n", + "m2 = 14.0 # Msun\n", + "separation = 0 # 0 = ignored, use period\n", + "orbital_period = 4530.0 # days\n", + "eccentricity = 0.0\n", + "metallicity = 0.02\n", + "max_evolution_time = 15000 # You need to set this!\n", + "\n", + "argstring = \"binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} \".format(\n", + " m1,\n", + " m2,\n", + " separation,\n", + " orbital_period,\n", + " eccentricity,\n", + " metallicity,\n", + " max_evolution_time,\n", + ")\n", + "\n", + "output = binary_c_python_api.run_binary(argstring)\n", + "\n", + "print(\"\\n\\nBinary_c output:\\n\\n\")\n", + "print('\\n'.join(output.split('\\n')[:10]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "### run_binary_with_log" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + " TIME M1 M2 K1 K2 SEP ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=1748 RANDOM_COUNT=0\n", + " 0.0000 10.000 20.000 1 1 2.8176e+08 0.00 0.000 0.000 INITIAL \n", + " 8.8656 9.980 19.203 1 2 2.8966e+08 0.00 0.000 0.000 TYPE_CHNGE\n", + " 8.8814 9.980 19.185 1 4 2.8983e+08 0.00 0.000 0.000 TYPE_CHNGE\n", + " 9.8724 9.977 10.122 1 5 4.2066e+08 0.00 0.000 0.000 TYPE_CHNGE\n", + " 9.8834 9.977 9.974 1 5 4.2379e+08 0.00 0.000 0.000 q-inv\n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 Randbuf=42123 - d48r(0)=0.976476 - d48r(1)=0.214027 - d48r(2)=0.638803 - d48r(3)=0.00325497 - d48r(4)=0.931833 \n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 SN kick II (SN type 12 12, pre-explosion M=8.50996 Mc=6.81718 type=5) -> kick 1(190) vk=132.601 vr=0.0878271 omega=5.85488 phi=-1.45663 -> vn=132.592 ; final sep -125.894 ecc -1 (random count 0) - Runaway v=(0,0,0) |v|=0 : companion v=(0,0,0), |v|=0 ; \n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 DISRUPT \n", + " 9.8901 9.977 1.621 1 13 -125.89 -1.00 0.000 0.000 SN\n", + " 24.4615 9.890 1.621 2 13 -125.89 -1.00 0.000 0.000 OFF_MS\n", + " 24.4615 9.890 1.621 2 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 24.5257 9.887 1.621 3 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 24.5353 9.886 1.621 4 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 27.3558 9.424 1.621 5 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 d48r(5)=0.99127 - d48r(6)=0.231093 - d48r(7)=0.881928 - d48r(8)=0.603217 \n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 SN kick II (SN type 12 12, pre-explosion M=9.30206 Mc=2.87012 type=5) -> kick 1(190) vk=663.531 vr=0 omega=3.79013 phi=0.869266 -> vn=663.531 ; final sep -125.894 ecc -1 (random count 5) - Runaway v=(0,0,0) |v|=0 : companion v=(0,0,0), |v|=0 ; \n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 TYPE_CHNGE\n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 q-inv\n", + " 27.4616 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 SN\n", + " 15000.0000 1.338 1.621 13 13 -125.89 -1.00 0.000 0.000 MAX_TIME\n", + "Probability : 1\n", + "\n" + ] + } + ], + "source": [ + "import tempfile\n", + "import os\n", + "\n", + "m1 = 15.0 # Msun\n", + "m2 = 14.0 # Msun\n", + "separation = 0 # 0 = ignored, use period\n", + "orbital_period = 4530.0 # days\n", + "eccentricity = 0.0\n", + "metallicity = 0.02\n", + "max_evolution_time = 15000 # You need to set this!\n", + "log_filename=tempfile.gettempdir() + \"/test_log.txt\"\n", + "\n", + "argstring = \"binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} log_filename {7} \".format(\n", + " m1,\n", + " m2,\n", + " separation,\n", + " orbital_period,\n", + " eccentricity,\n", + " metallicity,\n", + " max_evolution_time,\n", + " log_filename,\n", + ")\n", + "\n", + "output = binary_c_python_api.run_binary(argstring)\n", + "\n", + "print(os.path.exists(log_filename))\n", + "\n", + "with open(log_filename, 'r') as f:\n", + " print(f.read())\n", + "\n", + "\n", + "# print(\"\\n\\nBinary_c output:\\n\\n\")\n", + "# print(output)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "### run binary with custom logging line" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "MY_STELLAR_DATA time=0 mass=15\n", + "example_header_1 time=0 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 0 15 14 1 1 3540.3 0\n", + "INITIAL_GRID 15 14 4530 0.02 1 0\n", + "MY_STELLAR_DATA time=0 mass=15\n", + "example_header_1 time=1e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 1e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=1e-07 mass=15\n", + "example_header_1 time=2e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 2e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=2e-07 mass=15\n", + "example_header_1 time=3e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 3e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=3e-07 mass=15\n", + "example_header_1 time=4e-07 mass_1=15 mass_2=14 st1=1 st2=1 sep=3540.3 ecc=0\n", + "example_header_2 4e-07 15 14 1 1 3540.3 0\n", + "MY_STELLAR_DATA time=4e-07 mass=15\n" + ] + } + ], + "source": [ + "from binarycpython.utils import custom_logging_functions\n", + "# generate logging lines. Here you can choose whatever you want to have logged, and with what header\n", + "# this generates working print statements\n", + "logging_line = custom_logging_functions.autogen_C_logging_code(\n", + " {\"MY_STELLAR_DATA\": [\"model.time\", \"star[0].mass\"],}\n", + ")\n", + "# OR\n", + "# You can also decide to `write` your own logging_line, which allows you to write a more complex logging statement with conditionals.\n", + "logging_line = 'Printf(\"MY_STELLAR_DATA time=%g mass=%g\\\\n\", stardata->model.time, stardata->star[0].mass)'\n", + "\n", + "# Generate entire shared lib code around logging lines\n", + "custom_logging_code = custom_logging_functions.binary_c_log_code(logging_line)\n", + "# print(custom_logging_code)\n", + "\n", + "# Make this code into a shared library and the function into memory\n", + "func_memaddr = custom_logging_functions.create_and_load_logging_function(custom_logging_code)\n", + "\n", + "# Run system with custom logging code\n", + "m1 = 15.0 # Msun\n", + "m2 = 14.0 # Msun\n", + "separation = 0 # 0 = ignored, use period\n", + "orbital_period = 4530.0 # days\n", + "eccentricity = 0.0\n", + "metallicity = 0.02\n", + "max_evolution_time = 15000 # You need to set this!\n", + "\n", + "argstring = \"binary_c M_1 {0:g} M_2 {1:g} separation {2:g} orbital_period {3:g} eccentricity {4:g} metallicity {5:g} max_evolution_time {6:g} \".format(\n", + " m1,\n", + " m2,\n", + " separation,\n", + " orbital_period,\n", + " eccentricity,\n", + " metallicity,\n", + " max_evolution_time,\n", + ")\n", + "\n", + "output = binary_c_python_api.run_binary_custom_logging(argstring, func_memaddr)\n", + "print('\\n'.join(output.split('\\n')[:20]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "## Using utils functions\n", + "In the utils.functions there are some functions that make it easier to interact with the core api functions. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "### run_system()\n", + "This function serves as an example on the function run_system and parse_output. \n", + "There is more functionality with this method and several tasks are done behind the scene.\n", + "\n", + "Requires pandas, numpy to run.\n", + "\n", + "run_system: mostly just makes passing arguments to the function easier. It also loads all the necessary defaults in the background\n", + "parse_output: Takes the raw output of binary_c and selects those lines that start with the given header. \n", + "Note, if you dont use the custom_logging functionality binary_c should be configured to have output that starts with that given header\n", + "\n", + "The parsing of the output only works correctly if either all of the values are described inline like `mass=<number>' or none of them are. " + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "example_header_1 time=0 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 0 10 20 1 1 2.81762e+08 0\n", + "INITIAL_GRID 10 20 1e+11 0.02 1 0\n", + "example_header_1 time=0 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 0 10 20 1 1 2.81762e+08 0\n", + "INITIAL_GRID 10 20 1e+11 0.02 1 0\n", + "example_header_1 time=1e-07 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 1e-07 10 20 1 1 2.81762e+08 0\n", + "example_header_1 time=2e-07 mass_1=10 mass_2=20 st1=1 st2=1 sep=2.81762e+08 ecc=0\n", + "example_header_2 2e-07 10 20 1 1 2.81762e+08 0\n", + "\n", + "\n", + "\n", + " time mass_1 mass_2 st1 st2 sep ecc\n", + "0 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "1 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "2 1.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "3 2.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "4 3.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "... ... ... ... ... ... ... ...\n", + "3927 1.102750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3928 1.202750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3929 1.302750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3930 1.402750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3931 1.500000e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "\n", + "[3932 rows x 7 columns]\n", + " time mass_1 mass_2 st1 st2 sep ecc\n", + "0 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "1 0.000000e+00 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "2 1.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "3 2.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "4 3.000000e-07 10.00000 20.00000 1.0 1.0 2.817620e+08 0.0\n", + "... ... ... ... ... ... ... ...\n", + "3927 1.102750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3928 1.202750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3929 1.302750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3930 1.402750e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "3931 1.500000e+04 1.33817 1.62124 13.0 13.0 -1.705700e+01 -1.0\n", + "\n", + "[3932 rows x 7 columns]\n" + ] + } + ], + "source": [ + "from binarycpython.utils.functions import run_system, parse_output\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "# Run system. all arguments can be given as optional arguments.\n", + "output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100000000000)\n", + "\n", + "print('\\n'.join(output.split('\\n')[:10]))\n", + "\n", + "# Catch results that start with a given header. (Mind that binary_c has to be configured to print them if your not using a custom logging function)\n", + "result_example_header_1 = parse_output(output, selected_header=\"example_header_1\")\n", + "result_example_header_2 = parse_output(output, selected_header=\"example_header_2\")\n", + "\n", + "# print(result_example_header_1)\n", + "\n", + "#### Now do whatever you want with it:\n", + "# Or put them into a pandas array\n", + "\n", + "# Cast the data into a dataframe.\n", + "# This example automatically catches the column names because the binary_c output line is constructed as 'example_header_1 time=<number>..'\n", + "print('\\n\\n')\n", + "\n", + "df = pd.DataFrame.from_dict(result_example_header_1, dtype=np.float64)\n", + "print(df)\n", + "\n", + "# This example has column headers which are numbered, but we can override that with custom headers.\n", + "df2 = pd.DataFrame.from_dict(result_example_header_2, dtype=np.float64)\n", + "df2.columns=['time', 'mass_1', 'mass_2', 'st1', 'st2', 'sep', 'ecc']\n", + "print(df2)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "### run_system() and custom logging\n", + "Function that will use a automatically generated piece of logging code. Compile it, load it \n", + "into memory and run a binary system. See run_system on how several things are done in the background here.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " time mass\n", + "0 0.000000e+00 1.000000\n", + "1 0.000000e+00 1.000000\n", + "2 1.000000e-07 1.000000\n", + "3 2.000000e-07 1.000000\n", + "4 3.000000e-07 1.000000\n", + "... ... ...\n", + "3630 1.131680e+04 0.627748\n", + "3631 1.231680e+04 0.627748\n", + "3632 1.331680e+04 0.627748\n", + "3633 1.431680e+04 0.627748\n", + "3634 1.500000e+04 0.627748\n", + "\n", + "[3635 rows x 2 columns]\n" + ] + } + ], + "source": [ + "from binarycpython.utils.custom_logging_functions import (\n", + " autogen_C_logging_code,\n", + " binary_c_log_code,\n", + ")\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "# generate logging lines. Here you can choose whatever you want to have logged, and with what header\n", + "# this generates working print statements\n", + "logging_line = autogen_C_logging_code(\n", + " {\"MY_STELLAR_DATA\": [\"model.time\", \"star[0].mass\"],}\n", + ")\n", + "# OR\n", + "# You can also decide to `write` your own logging_line, which allows you to write a more complex logging statement with conditionals.\n", + "logging_line = 'Printf(\"MY_STELLAR_DATA time=%g mass=%g\\\\n\", stardata->model.time, stardata->star[0].mass)'\n", + "\n", + "# Generate entire shared lib code around logging lines\n", + "custom_logging_code = binary_c_log_code(logging_line)\n", + "\n", + "# Run system. all arguments can be given as optional arguments. the custom_logging_code is one of them and will be processed automatically.\n", + "output = run_system(\n", + " M_1=1,\n", + " metallicity=0.002,\n", + " M_2=0.1,\n", + " separation=0,\n", + " orbital_period=100000000000,\n", + " custom_logging_code=custom_logging_code,\n", + ")\n", + "\n", + "# Catch results that start with a given header. (Mind that binary_c has to be configured to print them if your not using a custom logging function)\n", + "# DOESNT WORK YET if you have the line autogenerated.\n", + "result_example_header = parse_output(output, \"MY_STELLAR_DATA\")\n", + "\n", + "# Cast the data into a dataframe.\n", + "df = pd.DataFrame.from_dict(result_example_header, dtype=np.float64)\n", + "\n", + "# Do whatever you like with the dataframe.\n", + "print(df)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "Collapsed": "true" + }, + "source": [ + "## Other example\n", + "Checking how much mass stars lose on the main sequence." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "def run_and_calc_mass(**kwargs):\n", + " \"\"\"\n", + " Function to run a given system and look at the mass lost in the main sequence of the star\n", + " \"\"\"\n", + " # start = time.time()\n", + " output = run_system(**kwargs)\n", + " result = parse_output(output, 'example_header_1')\n", + " # stop = time.time()\n", + " # print(\"Took {:.2f}s to run single system\".format(stop-start))\n", + " # print(\"The following keys are present in the results:\\n{}\".format(result.keys()))\n", + " # print(len(result))\n", + "\n", + " #### Now do whatever you want with it: \n", + "\n", + " # Cast the data into a dataframe. \n", + " df = pd.DataFrame.from_dict(result, dtype=np.float64)\n", + "\n", + " # Get last change moment\n", + " last_st = df['st1'].unique()[-1]\n", + " last_stellar_type_change_time_1 = df[df.st1==last_st]['time'].iloc[0]\n", + "\n", + " # slice to get that last time\n", + " sliced_df = df[df.time < last_stellar_type_change_time_1] # Cut off late parts of evolution\n", + "\n", + " main_sequence = sliced_df[sliced_df.st1==1]\n", + " \n", + " initial_mass = main_sequence.iloc[0].mass_1\n", + " final_mass = main_sequence.iloc[-1].mass_1\n", + " \n", + " initial_time = main_sequence.iloc[0].time\n", + " final_time = main_sequence.iloc[-1].time\n", + " \n", + " mass_lost = initial_mass - final_mass\n", + " fraction = mass_lost/initial_mass\n", + "\n", + " # Return the mass fraction (wrt initial mass)\n", + " return fraction\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Took 12.005768775939941s\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "metallicity_002 = 0.02\n", + "metallicity_001 = 0.01\n", + "metallicity_0002 = 0.002\n", + "\n", + "mass_range = np.arange(1, 25, .5)\n", + "\n", + "start = time.time()\n", + "fractions_z002 = [run_and_calc_mass(M_1=mass, \n", + " M_2=10, \n", + " separation=0, \n", + " orbital_period=100000000000, \n", + " metallicity=metallicity_002, \n", + " effective_metallicity=metallicity_002) \n", + " for mass in mass_range]\n", + "\n", + "fractions_z001 = [run_and_calc_mass(M_1=mass, \n", + " M_2=10, \n", + " separation=0, \n", + " orbital_period=100000000000, \n", + " metallicity=metallicity_001, \n", + " effective_metallicity=metallicity_001) \n", + " for mass in mass_range]\n", + "\n", + "fractions_z0002 = [run_and_calc_mass(M_1=mass, \n", + " M_2=10, \n", + " separation=0, \n", + " orbital_period=100000000000, \n", + " metallicity=metallicity_0002, \n", + " effective_metallicity=metallicity_0002) \n", + " for mass in mass_range]\n", + "stop = time.time()\n", + "print(\"Took {}s\".format(stop-start))" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 864x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(12,8))\n", + "\n", + "ax.plot(mass_range, fractions_z002, '--', label='Z=0.02')\n", + "ax.plot(mass_range, fractions_z001, '-.', label='Z=0.01')\n", + "ax.plot(mass_range, fractions_z0002, '-', label='Z=0.002')\n", + "\n", + "ax.set_xlabel(r'Initial Mass ($M_{\\odot}$)', fontsize=18)\n", + "ax.set_ylabel(r'Fraction of total initial mass lost on main sequence', fontsize=18)\n", + "ax.set_title('Fraction of total initial mass lost during main sequence for different metallicities', fontsize=18)\n", + "ax.legend()\n", + "ax.set_yscale('log')\n", + "#save_loop(name='plots/mass_loss_MS.{format}', formats=['pdf', 'png', 'eps'], bbox_inches='tight')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/workshop_example_notebook.pdf b/examples/notebooks/workshop_example_notebook.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3e24ccc14b6e6ad9875420da4498337ad928d5ca GIT binary patch literal 103581 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%0AQI1MCC{sM3M~@CV3&NTC}( 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%0D1Fa;P|_BE`}ZN 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�<y>nsc5KK) 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 literal 0 HcmV?d00001 -- GitLab