Calls the algorithms listed above in the following order:
Data is generated by calling gen_data.py
Trains ResNets by calling train_models.py
Plots results and errors for each ResNet by calling plot_models.py
Numerically solves system of ODEs defined by the Rayleigh-Plesset equation using SciPy's solve_ivp(method='LSODA').
T = n * dt is the total time of the solution
dt = smallest time step
n = maximum number of time steps
Many solutions are created for a range of random initial conditions.
This data is saved as a tensor for training and validating various ResNets.
Parameters are adjusted in file parameters.yml (see below)
Trains ResNets with an adjustable architecture. Each ResNet is a time-stepper trained at different step-sizes.
Parameters are adjusted in file parameters.yml (see below)
Visualizes predictions made by individual ResNets.
Determines which "combination" of ResNets produces the best mean-squared-error (MSE) by removing smallest time-steppers first.
Visualizes MSE of individual time-steppers and multi-scale time-steppers (the ensemble of ResNets).
Visualizes predictions made by multi-scale time-steppers (the ensemble of ResNets).
Final plot color codes the 3 largest time-steppers for predictions made by multi-scale ResNets.
Adjust parameters for generating data and training your ResNets (time-steppers).
Read by algorithm as a Python dictionary.
system = 'RP' stands for Rayleigh-Plesset and is used in file names saved by python scripts
dt = smallest time step for data describing the Rayleigh-Plesset equation
k_max = determines the largest time step for a ResNet to make predictions, e.g. time_step = 2^k * dt
model_steps = number of steps allowed for ResNet to make predictions while training
n_train = number of training data samples
n_val = number of validation data samples
n_test = number of test data samples
batch_size = number of samples in a batch, sampled from training data
u = (Pa * s) dynamic viscosity (u=0 means no viscosity)
R0 = (meters) physical diameter for bubble, before normalization (meters)
Pv = (Pa) vapor pressure inside bubble
exponent = number from interval [1...2] used in RP-equation ...R^(-3 * exponent)
P0 = (Pa) external pressure of environment far from bubble
S = (N/m) don't remember
rho = (kg/m^3) density of fluid external to wall
abs_tol = absolute error tolerance for RK4 to generate data
rel_tol = relative error tolerance for RK4 to generate data
P_min = minimum initial pressure (t=0) allowed for ODE data, RP-equation
P_max = maximum initial pressure (t=0) allowed for ODE data, RP-equation
R_min = minimum initial radius (t=0) allowed for ODE data, RP-equation
R_max = maximum initial radius (t=0) allowed for ODE data, RP-equation
R_test = initial radius (t=0) for test ODE data, RP-equation
Rdot_min = minimum initial velocity (t=0) allowed for ODE data, RP-equation
Rdot_max = maximum initial velocity (t=0) allowed for ODE data, RP-equation
Rdot_test = initial velocity (t=0) for test ODE data, RP-equation
width = number of nodes/weights in each ResNet layer
num_layers = number of ResNet layers, each of size 'layer_size'
num_inputs = number of ResNet inputs, (e.g. p, R, and Rdot)
num_outputs = number of ResNet outputs (e.g. R and Rdot)
plot_x_dim: 30
plot_y_dim: 10
title_fontsize: 40
legend_fontsize: 30
x_label_fontsize: 30
y_label_fontsize: 30
axis_fontsize: 30
box_fontsize: 30