diff --git a/humanc/cardiac_pm.py b/humanc/cardiac_pm.py index d3edb30..67a55cf 100644 --- a/humanc/cardiac_pm.py +++ b/humanc/cardiac_pm.py @@ -1,4 +1,10 @@ import numpy as np +import sys +import os + +cardiac_pm_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'cardiac_pm.dir') +if cardiac_pm_dir not in sys.path: + sys.path.insert(0, cardiac_pm_dir) import pulsatile_model_functions as pmf import healthy_params as K import concore diff --git a/sample/PZ/pm.py b/sample/PZ/pm.py new file mode 100644 index 0000000..8eff2ca --- /dev/null +++ b/sample/PZ/pm.py @@ -0,0 +1,34 @@ +import concore +import numpy as np +import ast + + +def pm(u): + return u + 0.01 + + +concore.default_maxtime(150) +concore.delay = 0.02 + +init_simtime_u = "[0.0, 0.0]" +init_simtime_ym = "[0.0, 0.0]" + +ym = np.array([concore.initval(init_simtime_ym)], dtype=np.float64).T + +while concore.simtime < concore.maxtime: + while concore.unchanged(): + u_raw = concore.read(1, "u", init_simtime_u) + if isinstance(u_raw, str): + try: + u_raw = ast.literal_eval(u_raw) + except (ValueError, SyntaxError): + print("Failed to parse fallback u string:", u_raw) + u_raw = [0.0] + u = np.array([u_raw], dtype=np.float64).T + + ym = pm(u) + + print(f"{concore.simtime}. u={u} ym={ym}") + concore.write(1, "ym", [float(x) for x in ym.T[0]], delta=1) + +print("retry=" + str(concore.retrycount)) diff --git a/sample/src/pm.py b/sample/src/pm.py new file mode 100644 index 0000000..8eff2ca --- /dev/null +++ b/sample/src/pm.py @@ -0,0 +1,34 @@ +import concore +import numpy as np +import ast + + +def pm(u): + return u + 0.01 + + +concore.default_maxtime(150) +concore.delay = 0.02 + +init_simtime_u = "[0.0, 0.0]" +init_simtime_ym = "[0.0, 0.0]" + +ym = np.array([concore.initval(init_simtime_ym)], dtype=np.float64).T + +while concore.simtime < concore.maxtime: + while concore.unchanged(): + u_raw = concore.read(1, "u", init_simtime_u) + if isinstance(u_raw, str): + try: + u_raw = ast.literal_eval(u_raw) + except (ValueError, SyntaxError): + print("Failed to parse fallback u string:", u_raw) + u_raw = [0.0] + u = np.array([u_raw], dtype=np.float64).T + + ym = pm(u) + + print(f"{concore.simtime}. u={u} ym={ym}") + concore.write(1, "ym", [float(x) for x in ym.T[0]], delta=1) + +print("retry=" + str(concore.retrycount)) diff --git a/tools/cardiac_pm.py b/tools/cardiac_pm.py index 0fd5924..7741e62 100644 --- a/tools/cardiac_pm.py +++ b/tools/cardiac_pm.py @@ -1,8 +1,14 @@ import numpy as np +import sys +import os +import logging + +_cardiac_pm_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'cardiac_pm.dir') +if _cardiac_pm_dir not in sys.path: + sys.path.insert(0, _cardiac_pm_dir) import pulsatile_model_functions as pmf import healthy_params as K import concore -import logging #x0 = np.loadtxt('pulsatile_steady.txt')