Skip to content
Snippets Groups Projects
Commit cbe01097 authored by David Hendriks's avatar David Hendriks
Browse files

created file that will contain examples of logging lines/custom logging...

created file that will contain examples of logging lines/custom logging snippets for people to use as an inspiration
parent 9b5185fe
No related branches found
No related tags found
No related merge requests found
import ctypes
import tempfile
import os
from binarycpython.utils.custom_logging_functions import (
autogen_C_logging_code,
binary_c_log_code,
compile_shared_lib,
temp_custom_logging_dir,
create_and_load_logging_function,
)
import binary_c_python_api
# generate logging lines
logging_line = autogen_C_logging_code(
{
"MY_STELLAR_DATA": ["model.time", "star[0].mass"],
"my_sss2": ["model.time", "star[1].mass"],
}
)
# Generate code around logging lines
custom_logging_code = binary_c_log_code(logging_line)
# Generate library and get memaddr
func_memaddr = create_and_load_logging_function(custom_logging_code)
#
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
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_custom_logging(argstring, func_memaddr)
print(output)
import binary_c_python_api
from binarycpython.utils.custom_logging_functions import (
autogen_C_logging_code,
binary_c_log_code,
create_and_load_logging_function,
)
from binarycpython.utils.grid import Population
# no logging set.
pop = Population()
pop.set(M_1=10, M_2=10, separation=0, orbital_period=4530, eccentricity=0, metallicity=0.02, max_evolution_time=15000)
out = pop.evolve_single()
print(out)
###########################################
pop.set(C_logging_code="""
if(stardata->star[0].stellar_type>=MS)
{
if (stardata->model.time < stardata->model.max_evolution_time)
{
Printf("EXAMPLE_ABOVE_MS %30.12e %g %g %g %g %d %d\\n",
//
stardata->model.time, // 1
stardata->star[0].mass, //2
stardata->previous_stardata->star[0].mass, //3
stardata->star[0].radius, //4
stardata->previous_stardata->star[0].radius, //5
stardata->star[0].stellar_type, //6
stardata->previous_stardata->star[0].stellar_type //7
);
};
/* Kill the simulation to save time */
//stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;
};
""")
out = pop.evolve_single()
print(out)
#################################################
pop.set(M_1=100, M_2=10, separation=0, orbital_period=400530, eccentricity=0, metallicity=0.002, max_evolution_time=15000)
pop.set(C_logging_code="""
if(stardata->star[0].stellar_type>=NS)
{
if (stardata->model.time < stardata->model.max_evolution_time)
{
Printf("EXAMPLE_LOG_CO %30.12e %g %g %g %g %d %d\\n",
//
stardata->model.time, // 1
stardata->star[0].mass, //2
stardata->previous_stardata->star[0].mass, //3
stardata->star[0].radius, //4
stardata->previous_stardata->star[0].radius, //5
stardata->star[0].stellar_type, //6
stardata->previous_stardata->star[0].stellar_type //7
);
};
/* Kill the simulation to save time */
stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;
};
""")
out = pop.evolve_single()
print(out)
quit()
def custom_logging_autogenerated():
"""
This is an example function for the autogeneration of logging codes that binary_c uses.
"""
# generate logging lines
logging_line = autogen_C_logging_code(
{
"MY_STELLAR_DATA": ["model.time", "star[0].mass"],
"my_sss2": ["model.time", "star[1].mass"],
}
)
# Generate code around logging lines
custom_logging_code = binary_c_log_code(logging_line)
# Generate library and get memaddr
func_memaddr = create_and_load_logging_function(custom_logging_code)
#
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
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_custom_logging(argstring, func_memaddr)
print(output)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment