14. Model Execution

As the model has distinct phases of operation, so too can the execution procedures. Users can define a unique execution loop or procedure to account for the different timings, model metrics and outputs required from each stage of the model. In general only 3 are required for the most complex models:

  1. Atmospheric pressure and pre-stress phase, displacement may be monitored
  2. DC Bias application, where charge or voltage may be added to monitor list
  3. Impulse application, where fields in the fluids, along with pressures may be added and plotted.

Stage 1 - Atmospheric Loading:

c *************************************
c EXECUTE & PLOT - ATM LOADING PHASE
c *************************************
/* get model timestep symb #get { step } timestep
/* Set-up plotting loops symb nloops = 50 symb nexec = $tAtm / $step symb nexec_loop = $nexec / $nloops
/* set-up graph command grph set imag avi nvew 4 1 mirr x colr tabl data 6 disp 5e1 line none
/* Set up PROC proc atm save
exec $nexec_loop
grph plot ydsp i * * j $j2 $j4 plot 4 plot 5 plot 6 imag end
end$ proc
/* Issue PROC $nloops times proc atm $nloops
/* pause - allow to check progress interactively term

Stage 2 - Bias:

c *******************************
c EXECUTE & PLOT - BIAS PHASE
c *******************************
/* Set-up plotting loops symb nloops = 50 symb nexec = ( $tRamp + $tBias ) / $step symb nexec_loop = $nexec / $nloops
proc bias save
exec $nexec_loop
grph plot ydsp i * * j $j2 $j4 rang 0 -8e-6 plot 4 plot 3 plot 6 imag end
end$ proc
proc bias $nloops
symb #msg 1 ** DRLX OFF **
/* Turn off Dynamic Relaxation for active calculation drlx 0.0

Step 3 - Impulse response:

c *********************************
c EXECUTE & PLOT - ACTIVE PHASE
c *********************************
/* set-up plotting times for active part symb nloops = 100 symb nexec = $tSim / $step symb nexec_loop = $nexec / $nloops
grph nvew 4 1 disp 1.
proc active save
exec $nexec_loop
grph plot aprs i * * j $j2 * rang 0 2.5 plot 4 plot 5 plot 6 imag end
end$ proc
proc active $nloops
/* pause term