Skip to content

Latest commit

 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicrowaveLyoModeling

This repository provides the code and data for Wheeler et al., 2026, published in AAPS Open, as a Julia package called MicrowaveLyoModeling. In the spirit of reproducibility, it uses the package DrWatson.jl.

Description

This project is structured as follows:

  • The lumped capacitance model is implemented in LyoPronto.jl, a package which is registered in the general Julia registry (installable by ]add LyoPronto).
  • The level set model is implemented in LevelSetSublimation.jl, which depends on LyoPronto.jl. LevelSetSublimation is not registered, so it is installed directly from its Git repo.
  • This "package", in the src folder, implements some historical versions of the lumped capacitance model and the model presented in Srisuma et al., 2023.
  • In the data folder, all experimental data used in the article are given. See the published article above (which is open access) for more information about the experiments.
  • This package reexports the following Julia libraries (among others), which are liberally used in the analysis scripts:
    • LyoPronto
    • DrWatson
    • LevelSetSublimation
    • Unitful
    • Plots
    • CSV, TypedTables
    • NonlinearSolve
    • OptimizationOptimJL

Reproducing

To (locally) reproduce this project, do the following:

  1. Download this repository, which includes both the data (mostly in data/exp_raw) and the analysis code (mostly in the scripts folder).
  2. Open a Julia console in this project directory and do:
    julia> using Pkg
    julia> Pkg.add("DrWatson") # install globally, for using `quickactivate`
    julia> Pkg.activate(".") # assuming located in this project directory
    julia> Pkg.instantiate()
    
    This will install all necessary packages for you to be able to run the scripts and everything should work out of the box, including correctly finding local paths.

You may notice that most scripts start with the commands:

using DrWatson
@quickactivate :MicrowaveLyoModeling

which auto-activate the project and enable local path handling from DrWatson.

If you want to simply rerun all the code, scripts/rerun_LC.jl will rerun all the figure-generating and analysis scripts using the lumped capacitance model. It runs other scripts, in order, in its own let block (so that each executes in its own local scope). This will produce all the graphs in the plots folder, as well as putting fit output in data/exp_pro and some level set simulations in data/sims.

To walk through a particular case, first run scripts/postprocess_sugars.jl, which preps all experimental data for analysis, then run the script of interest. I recommend using VSCode with the Julia extension to interactively run a script in order. This will generate some intermediate plots that I do not save for publication, but that are useful for closer inspection.

The level set simulations take longer to run, so they are left separate. They are included in scripts/LS_M1.jl, scripts/LS_M1_porevar.jl, and scripts/LS_error_order.jl.

Data

The experimental data analyzed here is described in more detail in the full journal article (providing formulations and experimental apparatus, etc.). Within the folder data/exp_raw, subfolders by experimental case contain an individual README noting which data files provide which data and show the figures from the article which report that data.

The script scripts/postprocess_sugars.jl does postprocessing of experimental data for all cases for which raw data were available (i.e., M1, M2, M3, M4, SM1, SM2).

License

The code here, in the folders src and scripts, is licensed under the MIT license. Data analyzed for this manuscript are provided in data, and are licensed under a CC-BY-4.0 license.

About

Analysis code for article published in AAPS Open.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages