Skip to content

Commit

Permalink
Update benchmark Purkinje coupling simulation
Browse files Browse the repository at this point in the history
  • Loading branch information
bergolho committed Aug 7, 2023
1 parent b0a7b8e commit 3540ff3
Show file tree
Hide file tree
Showing 11 changed files with 73 additions and 3,390 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,11 @@ tags
scripts/output
scripts/animations/convert_png_to_mp4.sh
scripts/animations/frames
scripts/animations/video
scripts/animations/drop_zone
scripts/animations/videos
scripts/animations/videos/*.mp4
scripts/apd_error/*.png
scripts/mesh-converter
scripts/traces/*
scripts/plot_comparison_potential.py
scripts/trace_plot.py
Expand Down
57 changes: 35 additions & 22 deletions example_configs/benchmark_aniso_purkinje_coupling.ini
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,34 @@ use_adaptivity=false
[update_monodomain]
main_function=update_monodomain_default

# Ensight
[save_result]
print_rate=100
output_dir=./outputs/9versions_benchmark_aniso_purkinje_coupling
save_pvd=true
file_prefix=V_Tissue
file_prefix_purkinje=V_Purkinje
# -------------------------------------
output_dir=./outputs/9versions_benchmark_aniso_purkinje_coupling_ensight_linsystem_CPU
;output_dir=./outputs/9versions_benchmark_aniso_purkinje_coupling_ensight_linsystem_GPU
# -------------------------------------
add_timestamp=false
binary=false
compress=false
remove_older_simulation=true
library_file=shared_libs/libdefault_save_mesh_purkinje.so
init_function=init_save_tissue_as_vtk_or_vtu_purkinje_as_vtp
end_function=end_save_tissue_as_vtk_or_vtu_purkinje_as_vtp
main_function=save_tissue_as_vtu_purkinje_as_vtp
main_function=save_as_ensight

# VTK
;[save_result]
;print_rate=100
;# -------------------------------------
;output_dir=./outputs/9versions_benchmark_aniso_purkinje_coupling_VTK_linsystem_CPU
;output_dir=./outputs/9versions_benchmark_aniso_purkinje_coupling_VTK_linsystem_GPU
;# -------------------------------------
;save_pvd=true
;file_prefix=V_Tissue
;file_prefix_purkinje=V_Purkinje
;binary=false
;compress=false
;remove_older_simulation=true
;library_file=shared_libs/libdefault_save_mesh_purkinje.so
;init_function=init_save_tissue_as_vtk_or_vtu_purkinje_as_vtp
;end_function=end_save_tissue_as_vtk_or_vtu_purkinje_as_vtp
;main_function=save_tissue_as_vtu_purkinje_as_vtp

[assembly_matrix]
init_function=set_initial_conditions_coupling_fvm
Expand All @@ -36,7 +51,7 @@ main_function=purkinje_coupling_with_anisotropic_sigma_assembly_matrix
[linear_system_solver]
tolerance=1e-16
use_preconditioner=no
use_gpu=yes
use_gpu=no
max_iterations=200
library_file=shared_libs/libdefault_linear_system_solver.so
main_function=conjugate_gradient
Expand All @@ -46,7 +61,7 @@ end_function=end_conjugate_gradient
[purkinje_linear_system_solver]
tolerance=1e-16
use_preconditioner=no
use_gpu=yes
use_gpu=no
max_iterations=200
init_function=init_conjugate_gradient
end_function=end_conjugate_gradient
Expand All @@ -59,11 +74,10 @@ gpu_id=0
library_file=shared_libs/libten_tusscher_2006.so

[purkinje_ode_solver]
adaptive=true
dt = 0.00001
use_gpu=no
dt=0.01
use_gpu=true
gpu_id=0
library_file=shared_libs/libtrovato_2019.so
library_file=shared_libs/libtrovato_2020.so

[domain]
name=N-Version Benchmark
Expand All @@ -74,11 +88,11 @@ main_function=initialize_grid_with_benchmark_mesh
[purkinje]
name=Benchmark Anisotropic Purkinje
dx=100.0
rpmj=5.0
rpmj=50000.0
asymm_ratio=1.0
pmj_scale=1000.0
nmin_pmj=20
nmax_pmj=25
pmj_scale=1.0
nmin_pmj=700
nmax_pmj=750
retro_propagation=true
network_file=networks/benchmark_coupling_aniso_network.vtk
pmj_location_file=networks/benchmark_coupling_aniso_pmjs.vtk
Expand All @@ -89,8 +103,7 @@ main_function=initialize_purkinje_coupling_with_custom_mesh
start = 0.0
duration = 2.0
current = -40.0
period=500.0
id_limit = 10
id_limit = 25
main_function=stim_if_id_less_than

[extra_data]
Expand Down
10 changes: 5 additions & 5 deletions networks/benchmark_coupling_aniso_pmjs.vtk
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# vtk DataFile Version 3.0
# vtk DataFile Version 4.2
Purkinje
ASCII
DATASET POLYDATA
POINTS 2 float
10000 1500 3000
10000 5500 3000
10000 1500 3000
10000 5500 3000
VERTICES 2 4
0 1
0 2
1 0
1 1
4 changes: 0 additions & 4 deletions scripts/compact_custom_and_local_files.sh

This file was deleted.

4 changes: 4 additions & 0 deletions scripts/compress_custom_and_local_files.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

tar -zcf custom_files.tgz ../src/domains_library/custom_* ../src/extra_data_library/custom_* ../src/matrix_assembly_library/custom_*
#tar -zcf local_files.tgz ../local_meshes ../local_networks ../private_configs ../private_models
26 changes: 26 additions & 0 deletions src/domains_library/domain.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,3 +344,29 @@ SET_SPATIAL_DOMAIN(initialize_grid_with_custom_mesh) {
return ret;

}

SET_SPATIAL_DOMAIN(initialize_grid_with_benchmark_purkinje_coupling_mesh) {

real_cpu start_dx = 100.0;
GET_PARAMETER_NUMERIC_VALUE_OR_REPORT_ERROR(real_cpu, start_dx, config, "start_dx");

real_cpu start_dy = 100.0;
GET_PARAMETER_NUMERIC_VALUE_OR_REPORT_ERROR(real_cpu, start_dy, config, "start_dy");

real_cpu start_dz = 100.0;
GET_PARAMETER_NUMERIC_VALUE_OR_REPORT_ERROR(real_cpu, start_dz, config, "start_dz");

real_cpu side_length_x = 10000.0;
GET_PARAMETER_NUMERIC_VALUE_OR_REPORT_ERROR(real_cpu, side_length_x, config, "side_length_x");

real_cpu side_length_y = 5000.0;
GET_PARAMETER_NUMERIC_VALUE_OR_REPORT_ERROR(real_cpu, side_length_y, config, "side_length_y");

real_cpu side_length_z = 5000.0;
GET_PARAMETER_NUMERIC_VALUE_OR_REPORT_ERROR(real_cpu, side_length_z, config, "side_length_z");

// Reference: "Influence of the Purkinje-muscle junction on transmural repolarization heterogeneity", Walton, R.D. et al. (2014)
log_info("Loading Purkinje coupling benchmark mesh using dx %lf um, dy %lf um, dz %lf um\n", start_dx, start_dy, start_dz);

return set_cuboid_domain_mesh(the_grid, start_dx, start_dy, start_dz, side_length_x, side_length_y, side_length_z);
}
Loading

0 comments on commit 3540ff3

Please sign in to comment.