fix(python): added temporary patch to let python bindings work on mac
Mirroring what was done in fourdst (see fourdst/tree/v0.8.5) we have added a temporary patch to let python bindings work on mac while the meson-python folks resolve the duplicate rpath issue in the shared object file
This commit is contained in:
@@ -1,46 +1,46 @@
|
||||
import numpy as np
|
||||
from scipy.integrate import solve_ivp
|
||||
|
||||
import pp_chain_robust as network
|
||||
|
||||
|
||||
T = 1.5e7
|
||||
rho = 1.5e2
|
||||
|
||||
Y0 = np.zeros(network.nnuc)
|
||||
Y0[network.jp] = 0.702583
|
||||
Y0[network.jhe3] = 9.74903e-6
|
||||
Y0[network.jhe4] = 0.068963
|
||||
Y0[network.jc12] = 0.000250029
|
||||
Y0[network.jn14] = 7.85632e-5
|
||||
Y0[network.jo16] = 0.00060151
|
||||
Y0[network.jne20] = 8.10399e-5
|
||||
Y0[network.jmg24] = 2.15159e-5
|
||||
|
||||
t_start = 0.0
|
||||
t_end = 3.14e17
|
||||
t_span = (t_start, t_end)
|
||||
|
||||
sol = solve_ivp(
|
||||
network.rhs,
|
||||
t_span=t_span,
|
||||
y0=Y0,
|
||||
method='Radau',
|
||||
jac=network.jacobian,
|
||||
args=(rho, T),
|
||||
dense_output=True,
|
||||
rtol=1e-8,
|
||||
atol=1e-8
|
||||
)
|
||||
|
||||
|
||||
with open("pynucastro_results.csv", 'w') as f:
|
||||
f.write("t,h1,h2,he3,he4,c12,n14,o16,ne20,mg24\n")
|
||||
for (t,h1,h2,he3,he4,c12,n14,o16,ne20,mg24) in zip(sol.t, sol.y[network.jp, :], sol.y[network.jd, :], sol.y[network.jhe3, :], sol.y[network.jhe4, :], sol.y[network.jc12, :], sol.y[network.jn14, :], sol.y[network.jo16, :], sol.y[network.jne20, :], sol.y[network.jmg24, :]):
|
||||
f.write(f"{t},{h1},{h2},{he3},{he4},{c12},{n14},{o16},{ne20},{mg24}\n")
|
||||
# import numpy as np
|
||||
# from scipy.integrate import solve_ivp
|
||||
#
|
||||
# import pp_chain_robust as network
|
||||
#
|
||||
#
|
||||
# T = 1e7
|
||||
# rho = 1.5e2
|
||||
#
|
||||
# Y0 = np.zeros(network.nnuc)
|
||||
# Y0[network.jp] = 0.702583
|
||||
# Y0[network.jhe3] = 9.74903e-6
|
||||
# Y0[network.jhe4] = 0.068963
|
||||
# Y0[network.jc12] = 0.000250029
|
||||
# Y0[network.jn14] = 7.85632e-5
|
||||
# Y0[network.jo16] = 0.00060151
|
||||
# Y0[network.jne20] = 8.10399e-5
|
||||
# Y0[network.jmg24] = 2.15159e-5
|
||||
#
|
||||
# t_start = 0.0
|
||||
# t_end = 3.14e17
|
||||
# t_span = (t_start, t_end)
|
||||
#
|
||||
# sol = solve_ivp(
|
||||
# network.rhs,
|
||||
# t_span=t_span,
|
||||
# y0=Y0,
|
||||
# method='Radau',
|
||||
# jac=network.jacobian,
|
||||
# args=(rho, T),
|
||||
# dense_output=True,
|
||||
# rtol=1e-8,
|
||||
# atol=1e-8
|
||||
# )
|
||||
#
|
||||
#
|
||||
# with open("pynucastro_results.csv", 'w') as f:
|
||||
# f.write("t,h1,h2,he3,he4,c12,n14,o16,ne20,mg24\n")
|
||||
# for (t,h1,h2,he3,he4,c12,n14,o16,ne20,mg24) in zip(sol.t, sol.y[network.jp, :], sol.y[network.jd, :], sol.y[network.jhe3, :], sol.y[network.jhe4, :], sol.y[network.jc12, :], sol.y[network.jn14, :], sol.y[network.jo16, :], sol.y[network.jne20, :], sol.y[network.jmg24, :]):
|
||||
# f.write(f"{t},{h1},{h2},{he3},{he4},{c12},{n14},{o16},{ne20},{mg24}\n")
|
||||
|
||||
from gridfire.engine import GraphEngine, MultiscalePartitioningEngineView, AdaptiveEngineView
|
||||
from gridfire.solver import DirectNetworkSolver
|
||||
from gridfire.solver import CVODESolverStrategy
|
||||
from gridfire.type import NetIn
|
||||
|
||||
from fourdst.composition import Composition
|
||||
@@ -61,7 +61,7 @@ netIn = NetIn()
|
||||
netIn.composition = comp
|
||||
netIn.temperature = 1.5e7
|
||||
netIn.density = 1.6e2
|
||||
netIn.tMax = 3.14e17
|
||||
netIn.tMax = 3.14e16
|
||||
netIn.dt0 = 1e-12
|
||||
|
||||
baseEngine = GraphEngine(netIn.composition, 2)
|
||||
@@ -71,7 +71,7 @@ qseEngine = MultiscalePartitioningEngineView(baseEngine)
|
||||
|
||||
adaptiveEngine = AdaptiveEngineView(qseEngine)
|
||||
|
||||
solver = DirectNetworkSolver(adaptiveEngine)
|
||||
solver = CVODESolverStrategy(adaptiveEngine)
|
||||
|
||||
data = []
|
||||
def callback(context):
|
||||
@@ -98,10 +98,10 @@ def callback(context):
|
||||
|
||||
|
||||
solver.set_callback(callback)
|
||||
results = solver.evaluate(netIn)
|
||||
results = solver.evaluate(netIn, False)
|
||||
|
||||
with open("gridfire_results.csv", 'w') as f:
|
||||
f.write("t,h1,h2,he3,he4,c12,n14,o16,ne20,mg24\n")
|
||||
for row in data:
|
||||
rowStr = ','.join([str(x) for x in row])
|
||||
f.write(f"{rowStr}\n")
|
||||
# with open("gridfire_results.csv", 'w') as f:
|
||||
# f.write("t,h1,h2,he3,he4,c12,n14,o16,ne20,mg24\n")
|
||||
# for row in data:
|
||||
# rowStr = ','.join([str(x) for x in row])
|
||||
# f.write(f"{rowStr}\n")
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import pynucastro as pyna
|
||||
|
||||
from gridfire.engine import GraphEngine, MultiscalePartitioningEngineView, AdaptiveEngineView
|
||||
from gridfire.solver import DirectNetworkSolver
|
||||
from gridfire.type import NetIn
|
||||
|
||||
from fourdst.composition import Composition
|
||||
@@ -19,7 +18,7 @@ print(f"Initial H-1 mass fraction {comp.getMassFraction("H-1")}")
|
||||
|
||||
netIn = NetIn()
|
||||
netIn.composition = comp
|
||||
netIn.temperature = 1.5e7
|
||||
netIn.temperature = 1e7
|
||||
netIn.density = 1.6e2
|
||||
netIn.tMax = 1e-9
|
||||
netIn.dt0 = 1e-12
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user