diff --git a/.cspell_dict.txt b/.cspell_dict.txt index 48dae4e..267ca86 100644 --- a/.cspell_dict.txt +++ b/.cspell_dict.txt @@ -14,10 +14,12 @@ conda Cookiecutter cotransporter Daversin +fenicsx deepvalve discretization docname docnames +devold Dokken DOLFINx elastodynamics @@ -47,7 +49,9 @@ Jørgen jorgensd Jupyterbook jupytext +Kjeldsberg Laughlin +latentvariableproximalpoint ldrb LUNSONGA Meep @@ -55,6 +59,7 @@ microphysiological minrk modelgraph monopoli +morphman multicompartmental Multiphysics MYKLEBUST @@ -93,7 +98,9 @@ Simula Stankelbein SVMTK Valnes +vasp venv +yamamoto vinje zapf Zenodo diff --git a/docs/data.md b/docs/data.md index 978982a..c056274 100644 --- a/docs/data.md +++ b/docs/data.md @@ -1,11 +1,13 @@ (data-main)= + # Organizing your data Management of data might be tricky, both because data might be confidential or data might too large to put in a repository. It should be clear that in order to fully reproduce a study, necessary data needs to be made available. -Please read more about data management at +Please read more about data management at ## Raw vs processed data + We typically separate between two types of data; raw data and processed data. Here raw data can refer to data that you got from an external collaborator while processed data are typically data that has been analyzed and converted to another format. For example, raw data could be MRI images of the heart, while processed data could be meshes that you created from those images. diff --git a/docs/index.md b/docs/index.md index a5e0bd5..fda4e11 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,6 +4,74 @@ This page contains information about [Scientific Computing](https://www.simula.n For information related to the projects at Department of Computational Physiology go [here](https://computationalphysiology.github.io/index.html). +## Software + +A list scientific software (and corresponding publication) developed by personnel in the Scientific Computing Department. + +### FEniCS + +- MuscleX [Muscle-growth](https://ingvilddevold.github.io/muscle-growth) {cite}`devold2025muscle` +- Scientific finite element toolbox [scifem](https://scientificcomputing.github.io/scifem/) +- ADIOS4DOLFINx: A framework for checkpointing in FEniCS [ADIOS4DOLFINx](https://jsdokken.com/adios4dolfinx) {cite}`dokken2024adios` +- Multi-point constraints with DOLFINx: [DOLFINx_MPC](https://jsdokken.com/dolfinx_mpc) + +### Simulation + +- SMART: Spatial Modeling Algorithms for Reactions and Transport [SMART](https://rangamanilabucsd.github.io/smart) {cite}`laughlin2023smart` +- Non-conforming 3D-1D modelling in FEniCSx [FEniCSx_ii](https://scientificcomputing.github.io/fenicsx_ii/) +- Network models for FEniCSx: [networks_fenicsx](https://scientificcomputing.github.io/networks_fenicsx/) +- Network models for FEniCS: [Graphnics](https://github.com/IngeborgGjerde/graphnics) +- Software Components for Multiphysics Problems: [HAZniCS](https://github.com/HAZmathTeam/hazmath) {cite}`budisa2022` + +### Meshing + +- Surface Volume Meshing ToolKit: [SVMTK](https://github.com/SVMTK/SVMTK) {cite}`valnes2022` +- Tool for creating idealised cardiac geometries and microstructure in FEniCS: [cardiac-geometries](https://github.com/ComputationalPhysiology/cardiac-geometries) +- Tool for creating idealised cardiac geometries and microstructure in FEniCSx: [cardiac-geometriesx](https://github.com/ComputationalPhysiology/cardiac-geometriesx) +- A collection of tools for manipulation of morphological features in patient-specific geometries [morphMan](https://github.com/KVSlab/morphMan) {cite}`Kjeldsberg2019morphman` +- Generate meshes from UK Biobank atlas [ukb-atlas](https://github.com/ComputationalPhysiology/ukb-atlas) + +### Fluid Dynamics + +- Next generation Open Source Navier Stokes solver using FEniCSx [oasisx](https://github.com/ComputationalPhysiology/oasisx) +- A verified and validated Python/FEniCS-based CFD solver for moving domains [OasisMove](https://github.com/KVSlab/OasisMove) +- A collection of tools for pre-processing, simulating, and post-processing vascular morphologies [VaMPy](https://github.com/KVSlab/VaMPy) {cite}`Kjeldsberg2023vampy` + +### FSI + +- A collection of tools for pre-processing, simulating, and post-processing vascular fluid-structure-interaction problems [VaSP](https://github.com/KVSlab/VaSP) {cite}`yamamoto2025vasp` +- Monolithic Fluid-Structure Interaction (FSI) solver [turtleFSI](https://github.com/KVSlab/turtleFSI) + +### Brain + +- Intracranial Pulsation: [brainpulse](https://github.com/MariusCausemann/intracranialPulsation) {cite}`causemann2022` + +### Heart + +- Simula Cardiac ElectroMechanics Solver [simcardems](https://github.com/ComputationalPhysiology/simcardems) {cite}`finsberg2023` +- Tools for working with microphysiological data [mps](https://github.com/ComputationalPhysiology/mps) +- Library for tracking motion in cardiac mps data [mps-motion](https://github.com/ComputationalPhysiology/mps_motion) +- Library for extracting action potential features [ap-features](https://github.com/ComputationalPhysiology/ap_features) +- Cardiac Circulation Models: [circulation](https://github.com/ComputationalPhysiology/circulation) +- `pulse` - Cardiac mechanics solver in [FEniCSx](https://github.com/finsberg/fenicsx-pulse) and [FEnICS](https://github.com/finsberg/pulse) +- `beat` - Cardiac electrophysiology solver in [FEniCSx](https://github.com/finsberg/fenicsx-beat) and [FEnICS](https://github.com/finsberg/fenics-beat) +- `ldrb` - Library for creating rule-based fiber orientations in [FEniCSx](https://github.com/finsberg/fenicsx-ldrb) and [FEniCS](https://github.com/finsberg/ldrb) + +### Other + +- General ODE translator [`gotranx`](https://github.com/finsberg/gotranx) {cite}`finsberg2024` +- A tool for visualizing dependencies between different components of your ODE model [`modelgraph`](https://github.com/ComputationalPhysiology/modelgraph) + +### Missing a package? + +If you package is missing from the list, go to [Add new package](https://github.com/scientificcomputing/scientificcomputing.github.io/issues/new?assignees=&labels=new-package&template=package.yml&title=%5BAdd+package%5D%3A+) + +```{bibliography} +:filter: docname in docnames +``` + +## Reproducibility + We think reproducibility is important and we have created some guidelines for reproducible research. On this web-page we discuss what is needed when you want to publish a paper that contains some code, and we are created two example papers that follows these guidelines diff --git a/docs/license.md b/docs/license.md index df4f7ec..0521b13 100644 --- a/docs/license.md +++ b/docs/license.md @@ -1,4 +1,7 @@ - (docs-license)= + # License -There exists a variety of different licenses. You can read more about choosing a license at https://the-turing-way.netlify.app/reproducible-research/licensing.html and how to add a license to your repository [here](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). + +There exists a variety of different licenses. You can read more about choosing a license at https://book.the-turing-way.org/reproducible-research/licensing/ and how to add a license to your repository [here](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). + +A free course regarding why one should license code, and what is classified as open-source code can be found at [the Linux Foundation](https://training.linuxfoundation.org/training/open-source-licensing-basics-for-software-developers/). diff --git a/docs/myst.yml b/docs/myst.yml index 9867135..c6770ea 100644 --- a/docs/myst.yml +++ b/docs/myst.yml @@ -3,7 +3,7 @@ version: 1 project: id: 867a190a-9c64-4dd1-bc79-25cb4bdd3a53 title: Scientific Computing - description: Developing tools for high performance computing, and applying novel simulation techniques to complex physical processes affecting human health. + description: Developing tools for high performance computing, and applying novel simulation techniques to complex physical processes affecting human health. keywords: - Scientific Computing - Computational Physiology @@ -18,10 +18,10 @@ project: - title: Publication list children: - file: repositories.md - - file: packages.md - file: datasets.md - title: Guidelines for papers with code children: + - file: index.md - file: papers-with-code.md - file: structure.md - file: data.md @@ -30,36 +30,36 @@ project: - title: Git/Github children: - - file: version_control.md - - file: gh-workflows.md - - file: gh-packages.md - - file: gh-citable.md - - file: gh-issues.md + - file: version_control.md + - file: gh-workflows.md + - file: gh-packages.md + - file: gh-citable.md + - file: gh-issues.md - title: Documentation children: - - file: documentation.md - - file: jupyter-book.md + - file: documentation.md + - file: jupyter-book.md - title: Python children: - - file: python-packaging.md - - file: python-testing.md - - file: python-coverage.md - - file: python-linting.md - - file: python-pre-commit.md - - file: python-conversion.md + - file: python-packaging.md + - file: python-testing.md + - file: python-coverage.md + - file: python-linting.md + - file: python-pre-commit.md + - file: python-conversion.md - title: Miscellaneous children: - - file: license.md - - file: software-citation.md - - file: resources.md - - file: misc.md + - file: license.md + - file: software-citation.md + - file: resources.md + - file: misc.md - title: Contact children: - - file: contact.md + - file: contact.md site: template: book-theme diff --git a/docs/packages.md b/docs/packages.md deleted file mode 100644 index 76ae3c0..0000000 --- a/docs/packages.md +++ /dev/null @@ -1,61 +0,0 @@ -# Software - -A list scientific software (and corresponding publication) developed by personnel in the Scientific Computing Department. - - -## FEniCS -- Scientific finite element toolbox [scifem](https://github.com/scientificcomputing/scifem) -- ADIOS4DOLFINx: A framework for checkpointing in FEniCS [ADIOS4DOLFINx](https://github.com/jorgensd/adios4dolfinx/) {cite}`dokken2024adios` -- Multi-point constraints with DOLFINx: [DOLFINx_MPC](https://github.com/jorgensd/dolfinx_mpc) - -## Simulation -- SMART: Spatial Modeling Algorithms for Reactions and Transport [smart](https://github.com/RangamaniLabUCSD/smart) {cite}`laughlin2023smart` -- Network models for FEniCS: [Graphnics](https://github.com/IngeborgGjerde/graphnics) -- Software Components for Multiphysics Problems: [HAZniCS](https://github.com/HAZmathTeam/hazmath) {cite}`budisa2022` - -## Meshing -- Surface Volume Meshing ToolKit: [SVMTK](https://github.com/SVMTK/SVMTK) {cite}`valnes2022` -- Tool for creating idealised cardiac geometries and microstructure in FEniCS: [cardiac-geometries](https://github.com/ComputationalPhysiology/cardiac-geometries) -- Tool for creating idealised cardiac geometries and microstructure in FEniCSx: [cardiac-geometriesx](https://github.com/ComputationalPhysiology/cardiac-geometriesx) -- A collection of tools for manipulation of morphological features in patient-specific geometries [morphMan](https://github.com/KVSlab/morphMan) -- Generate meshes from UK Biobank atlas [ukb-atlas](https://github.com/ComputationalPhysiology/ukb-atlas) - -## Fluid Dynamics -- Next generation Open Source Navier Stokes solver using FEniCSx [oasisx](https://github.com/ComputationalPhysiology/oasisx) -- A verified and validated Python/FEniCS-based CFD solver for moving domains [OasisMove](https://github.com/KVSlab/OasisMove) -- A collection of tools for pre-processing, simulating, and post-processing vascular morphologies [VaMPy](https://github.com/KVSlab/VaMPy) - -## FSI -- A collection of tools for pre-processing, simulating, and post-processing vascular fluid-structure-interaction problems [VaSP](https://github.com/KVSlab/VaSP) -- Monolithic Fluid-Structure Interaction (FSI) solver [turtleFSI](https://github.com/KVSlab/turtleFSI) - - -## Brain -- Intracranial Pulsation: [brainpulse](https://github.com/MariusCausemann/intracranialPulsation) {cite}`causemann2022` - - -## Heart - -- Simula Cardiac ElectroMechanics Solver [simcardems](https://github.com/ComputationalPhysiology/simcardems) {cite}`finsberg2023` -- Tools for working with microphysiological data [mps](https://github.com/ComputationalPhysiology/mps) -- Library for tracking motion in cardiac mps data [mps-motion](https://github.com/ComputationalPhysiology/mps_motion) -- Library for extracting action potential features [ap-features](https://github.com/ComputationalPhysiology/ap_features) -- Cardiac Circulation Models: [circulation](https://github.com/ComputationalPhysiology/circulation) -- `pulse` - Cardiac mechanics solver in [FEniCSx](https://github.com/finsberg/fenicsx-pulse) and [FEnICS](https://github.com/finsberg/pulse) -- `beat` - Cardiac electrophysiology solver in [FEniCSx](https://github.com/finsberg/fenicsx-beat) and [FEnICS](https://github.com/finsberg/fenics-beat) -- `ldrb` - Library for creating rule-based fiber orientations in [FEniCSx](https://github.com/finsberg/fenicsx-ldrb) and [FEniCS](https://github.com/finsberg/ldrb) - - -## Other -- General ODE translator [`gotranx`](https://github.com/finsberg/gotranx) {cite}`finsberg2024` -- A tool for visualizing dependencies between different components of your ODE model [`modelgraph`](https://github.com/ComputationalPhysiology/modelgraph) - - -## Missing a package? - -If you package is missing from the list, go to [Add new package](https://github.com/scientificcomputing/scientificcomputing.github.io/issues/new?assignees=&labels=new-package&template=package.yml&title=%5BAdd+package%5D%3A+) - - -```{bibliography} -:filter: docname in docnames -``` diff --git a/docs/references.bib b/docs/references.bib index 448d83e..b37dd0f 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -78,6 +78,15 @@ @article{daversin2022 doi = {10.3389/fphy.2022.882260}, issn = {2296-424X} } +@article{devold2025muscle, + author = {Devold, Ingvild S. and Rognes, Marie E. and Rangamani, Padmini}, + title = {Mechanochemical modeling of exercise-induced skeletal muscle hypertrophy}, + elocation-id = {2025.12.17.694686}, + year = {2025}, + doi = {10.64898/2025.12.17.694686}, + publisher = {Cold Spring Harbor Laboratory}, + journal = {bioRxiv} +} @article{dokken2024adios, doi = {10.21105/joss.06451}, year = {2024}, @@ -89,6 +98,17 @@ @article{dokken2024adios title = {{ADIOS4DOLFINx: A framework for checkpointing in FEniCS}}, journal = {Journal of Open Source Software} } +@article{dokken2025latentvariableproximalpoint, + title = {The latent variable proximal point algorithm for variational problems with inequality constraints}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + volume = {445}, + pages = {118181}, + year = {2025}, + issn = {0045-7825}, + doi = {10.1016/j.cma.2025.118181}, + author = {J\o{}rgen S. Dokken and Patrick E. Farrell and Brendan Keith and Ioannis P.A. Papadopoulos and Thomas M. Surowiec}, + keywords = {Latent variable proximal point, Proximal Galerkin, Variational inequality, Pointwise constraints, Nonlinear PDEs, Inequality constraints} +} @article{finsberg2023, doi = {10.21105/joss.04753}, url = {https://doi.org/10.21105/joss.04753}, @@ -159,6 +179,28 @@ @article{https://doi.org/10.1002/cnm.2982 abstract = {Abstract Individually personalized computational models of heart mechanics can be used to estimate important physiological and clinically-relevant quantities that are difficult, if not impossible, to directly measure in the beating heart. Here, we present a novel and efficient framework for creating patient-specific biventricular models using a gradient-based data assimilation method for evaluating regional myocardial contractility and estimating myofiber stress. These simulations can be performed on a regular laptop in less than 2~h and produce excellent fit between measured and simulated volume and strain data through the entire cardiac cycle. By applying the framework using data obtained from 3 healthy human biventricles, we extracted clinically important quantities as well as explored the role of fiber angles on heart function. Our results show that steep fiber angles at the endocardium and epicardium are required to produce simulated motion compatible with measured strain and volume data. We also find that the contraction and subsequent systolic stresses in the right ventricle are significantly lower than that in the left ventricle. Variability of the estimated quantities with respect to both patient data and modeling choices are also found to be low. Because of its high efficiency, this framework may be applicable to modeling of patient specific cardiac mechanics for diagnostic purposes.}, year = {2018} } +@article{Kjeldsberg2019morphman, + doi = {10.21105/joss.01065}, + year = {2019}, + publisher = {The Open Journal}, + volume = {4}, + number = {35}, + pages = {1065}, + author = {Kjeldsberg, Henrik A. and Bergersen, Aslak W. and Valen-Sendstad, Kristian}, + title = {{morphMan: Automated manipulation of vascular geometries}}, + journal = {Journal of Open Source Software} +} +@article{Kjeldsberg2023vampy, + doi = {10.21105/joss.05278}, + year = {2023}, + publisher = {The Open Journal}, + volume = {8}, + number = {85}, + pages = {5278}, + author = {Kjeldsberg, Henrik A. and Bergersen, Aslak W. and Valen-Sendstad, Kristian}, + title = {VaMPy: An Automated and Objective Pipeline for Modeling Vascular Geometries}, + journal = {Journal of Open Source Software} +} @article{laughlin2023smart, doi = {10.21105/joss.05580}, year = {2023}, @@ -313,6 +355,17 @@ @article{vinje2023human publisher = {Springer}, doi = {10.1186/s12987-023-00459-8} } +@article{yamamoto2025vasp, + title = {VaSP: Vascular Fluid-Structure Interaction Pipeline}, + journal = {SoftwareX}, + volume = {32}, + pages = {102392}, + year = {2025}, + issn = {2352-7110}, + doi = {10.1016/j.softx.2025.102392}, + author = {Kei Yamamoto and David A. Bruneau and Johannes Ring and J\o{}rgen S. Dokken and Kristian Valen-Sendstad}, + keywords = {Fluid-structure interaction, FEniCS, VMTK, Vascular research} +} @misc{zapf2023medical, title = {Medical image registration using optimal control of a linear hyperbolic transport equation with a DG discretization}, author = {Bastian Zapf and Johannes Haubner and Lukas Baumg\"{a}rtner and Stephan Schmidt}, diff --git a/docs/repositories.md b/docs/repositories.md index 01d251e..f842ab1 100644 --- a/docs/repositories.md +++ b/docs/repositories.md @@ -1,7 +1,10 @@ # Papers with code + A list of repositories used in research in the Scientific Computing Department follows. A link to relevant publications/preprints is referenced. ## 2025 + +- [The latent variable proximal point algorithm for variational problems with inequality constraints](https://github.com/METHODS-Group/ProximalGalerkin) {cite}`dokken2025latentvariableproximalpoint` - [In-silico molecular enrichment and clearance of the human intracranial space](https://github.com/MariusCausemann/brain-PVS-SAS-transport) {cite}`causemann2025insilico` - [Advection versus diffusion in brain ventricular transport](https://github.com/hherlyng/zebrafish-cilia-csf) {cite}`herlyng2025advection` - [Stretch and flow at the gliovascular interface: high-fidelity modelling of the mechanics of astrocyte endfeet](https://github.com/MariusCausemann/endfoot-mechanics) {cite}`causemann2025stretch` @@ -11,39 +14,40 @@ A list of repositories used in research in the Scientific Computing Department f - [DeepValve: an automatic detection pipeline for the mitral valve in cardiac magnetic resonance imaging](https://github.com/giuliamonopoli/deepvalve-paper) {cite}`monopoli2025deepvalve` ## 2024 + - [Human brain MRI data of CSF tracer evolution over 72h for data-integrated simulations](https://github.com/jorgenriseth/gonzo) {cite}`riseth2025human` - [The sodium/glucose cotransporter 2 inhibitor Empagliflozin inhibits long QT 3 late sodium currents in a mutation specific manner](https://github.com/andygedwards/LQT3-SGLT2i) {cite}`LUNSONGA202599` - [An electrodiffusive network model with multicompartmental neurons and synaptic connections](https://github.com/martejulie/electrodiffusive-network-model) {cite}`saetra2024` - [Automatic motion estimation with applications to hiPSC-CMs](https://github.com/ComputationalPhysiology/automatic-motion-estimation) {cite}`10.1088/2057-1976/ad7268` - [A computational study of right ventricular mechanics in a rat model of pulmonary arterial hypertension](https://github.com/oscarodeigah/rv_pah_project) {cite}`odeigah2024computational` - ## 2023 + - [Human brain solute transport quantified by glymphatic MRI-informed biophysics during sleep and sleep deprivation](https://github.com/bzapf/braintransport) {cite}`vinje2023human` - [Medical image registration using optimal control of a linear hyperbolic transport equation with a DG discretization](https://github.com/JohannesHaubner/mapMRI) {cite}`zapf2023medical` - [ffian: Fluid Flow In Astrocyte Networks](https://github.com/martejulie/fluid-flow-in-astrocyte-networks) {cite}`sætra2023` - [A novel density based approach for topology optimization of Stokes flow](https://github.com/JohannesHaubner/TopOpt) {cite}`haubner2023` - [The directional flow generated by peristalsis in perivascular networks—Theoretical and numerical reduced-order descriptions](https://github.com/scientificcomputing/perivascular-peristalsis) {cite}`10.1063/5.0160334` - ## 2022 + - [Multi-compartmental model of glymphatic clearance of solutes in brain tissue](https://github.com/jorgenriseth/multicompartment-solute-transport) {cite}`poulain2022` - [Geometrically reduced modelling of pulsatile flow in perivascular networks](https://github.com/cdaversin/geometrically-reduced-PVS-flow) {cite}`daversin2022` - [Nitsche method for solving Navier-Stokes with slip boundary conditions](https://github.com/IngeborgGjerde/nitsche-method-for-navier-stokes-with-slip) {cite}`gjerde2022` - [HAZniCS - Software Components for Multiphysics Problems](https://github.com/anabudisa/HAZniCS-examples) {cite}`budisa2022` ## 2021 + - [An electrodiffusive neuron-extracellular-glia model for exploring the genesis of slow potentials in the brain](https://github.com/CINPLA/edNEGmodel_analysis) {cite}`saetra2021` ## 2018 -- [Efficient estimation of personalized biventricular mechanical function employing gradient-based optimization](https://bitbucket.org/finsberg/efficient-estimation-of-personalized-biventricular-mechanical/src/master/) {cite}`https://doi.org/10.1002/cnm.2982` +- [Efficient estimation of personalized biventricular mechanical function employing gradient-based optimization](https://bitbucket.org/finsberg/efficient-estimation-of-personalized-biventricular-mechanical/src/master/) {cite}`https://doi.org/10.1002/cnm.2982` ## Missing a repository? If you repository is missing from the list, go to [Add new repository](https://github.com/scientificcomputing/scientificcomputing.github.io/issues/new?assignees=&labels=new-repo&template=repository.yml&title=%5BAdd+repo%5D%3A+) - ```{bibliography} :filter: docname in docnames ```