Mushy Layer  1.0
mushyLayerOpt.h
Go to the documentation of this file.
1 /*
2  * mushyLayerOpt.h
3  *
4  * Created on: 11 Feb 2019
5  * Author: parkinsonjl
6  *
7  * This structure contains all the options for the mushy layer code which shouldn't change
8  * during a simulation
9  */
10 
11 #ifndef SRC_MUSHYLAYEROPT_H_
12 #define SRC_MUSHYLAYEROPT_H_
13 
14 // Comment below ensures that enums doxygen generates documentation for enums declared in this file
20 enum RefinementMethod {
24 
27 
30 
33 
36 
39 
41 
46 
47 
48 };
49 
51 enum MGmethod {
54 
57 };
58 
63 
66 
69 
71 
75 };
76 
81 
84 
87 };
88 
91 {
94 
97 
100 
101 };
102 
103 
106 {
109 
112 
115 
118 
121 
124 
127 };
128 
130  enum VectorVars {
133 
136 
139 
141 
145 
147 
151 
153  m_viscousSolveSrc,
154 
157 
160  m_fluidVelAnalytic,
161  m_fluidVelErr,
162  m_dUdt,
163  m_FsDiffusion,
164  m_FsFluid,
165  m_Fs,
166  m_freestreamCorrection,
167  m_UpreProjection,
168  m_advectionImplicitSrc,
169  m_MACcorrection,
170  CCcorrection,
171  m_advSrcLapU,
172  m_advUpreProjection,
173  m_bodyForce,
174  m_advVelCorr,
175 
177  // Make sure this comes last!
179  };
180 
182  enum ScalarVars {
185 
188 
191 
194 
197 
200 
203 
206 
209 
212 
215 
218 
221 
224 
227 
230 
232 
236 
239 
241 
245 
248 
251 
254 
256 
260 
263 
266 
269 
271 
275 
278 
281 
283  m_FsVertDiffusion,
284 
286  m_FsVertFluid,
287 
289  m_FsVertFrame,
290 
292  m_divUcorr,
293 
296 
299 
302 
305 
308 
311 
314 
317 
319  // Make sure this comes last!
321 
322  };
323 
324 
325 //TODO: these should probably all be const's
326 //TODO: add comments to these options so it's obvious what they do
327 //TODO: collate more options in here rather than having lots of parmparses in the main code, so it's obvious what all the options are
330 
332  string output_dir;
333 
336 
339 
341  bool debug;
342 
345 
348 
351 
354 
357 
360 
363 
366 
369 
372 
374 
379 
382 
385 
388 
391 
394 
396 
407 
410 
413 
416 
419 
422 
424 
428 
431 
432 // Real stokesDarcyForcingTimescale;
433 
436 
439 
442 
444 
448 
449 
451 
455 
456 
457 // bool increaseDt;
458 
461 
462 // Real postTraceSmoothing;
463 // bool skipNewLevelScalars;
464 
467 
470 
472 
479 
480 
481 // bool noMultigrid;
482 // int noMultigridIter;
483 
486 
489 
492 
495 
498 
500 
504 
508 
510 
515 
518 
519 
520 // bool initiallyDoAutomaticRestart;
521 
523 
529 
531 
537 
540 
542 
546 
548 
552 
555 
558 
561 
564 
567 
568  bool doEulerPart;
569 
572 
573  // Projection stuff
574 
577 
579 
583 
585 
589 
590 // Real phiScale;
591 // bool scaleMACBCWithChi;
592 // Real MACBCscale;
593 
596 
599 
601 
605 
606 // bool useAnalyticSource;
607 
610 
612 
617 
619 
623  bool scaleP_CC;
624 
625 
626 // bool explicitDarcyTerm;
627 
629 
633 
636 
637 
638 // bool implicitAdvectionSolve;
639 // bool usePhiForImplicitAdvectionSolve;
640 
643 
645 
649 
652 
655 
658 
661 
664 
667 
669 
675 
678 
680 
684 
687 
690 
691 // int lapVelNumSmooth;
692 // Real lapVelSmoothScale;
693 
696 
699 
702 
705 
706  // u.grad(u) stuff
707  int uDeluMethod;
708  int uDelU_grow;
709  bool uDelUConservativeForm;
710 
711  // Advection source term
712 
715 
718 
721 
724 
725 
726 // bool advSrcAllowLaggedLapVel;
727 
729  bool CCAdvSrc;
730 
733 
735 
739 
741 
746 
747 
748 
751 
754 
757 
760 
762 
766 
768 
772 
775 
777 
781 
783 
787 
790 
793 
796 
797 
798 // int AMRMultigridRelaxMode;
799 
802 
805 
808 
811 
814 
817 
820 
823 
826 
829 
832 
835 
838 
841 
844 
847 
850 
853 
856 
858 
863 
865 
869 
870 
873 
876 
879 
882 
884 
888 
891 
894 
897 
900 
903 
904 
907 
910 
913 
916 
919 
922 
925 
928 
931 
933 
938 
941 
944 
947 
949 
955 
958 
961 
964 
966 
970 
973 
976 
978 
982 
985 
988 
990 
994 
997 
1000 
1001 // Real minEta;
1002 // bool computeFreestreamCorrectionSingleLevel;
1003 
1006 
1008 
1012 
1014 
1018 
1021 
1024 
1026 
1030 
1033 
1036 
1039 
1041 
1045 
1046 
1047 // int iter_plot_interval;
1048 
1051 
1054 
1056 
1060 
1063 
1064 
1065 // Real skipTrickySourceTerm;
1066 
1069 
1070 
1071 // Real smoothingCoeff;
1072 
1075 
1078 
1080 // int AMRMultigrid_verbosity;
1081 
1082 
1085 
1088 
1091 
1094 
1097 
1100 
1103 
1106 
1108 
1114  bool perturbationSin = false;
1115 
1118 
1121  bool seedRandomPert = true;
1122 
1124 
1128 
1131 
1134 
1137 
1140 
1141 
1144 
1147 
1148 
1151 
1154 
1156 
1160 
1163 
1166 
1169 
1170  // Restart
1171 
1174 
1177 
1180 
1183 
1186 
1189 
1192 
1195 
1198 
1201 
1204 
1206 // Real maxEta;
1207 
1209 
1214 
1217 
1220 
1223 
1224 
1225 };
1226 
1227 
1228 #endif /* SRC_MUSHYLAYEROPT_H_ */
Real porosityTimescale
Timescale for porosity variations if enforcing a fixed porosity.
Definition: mushyLayerOpt.h:1130
Real fixedDt
Enforce a fixed timestep (if > 0)
Definition: mushyLayerOpt.h:381
Real advVelChiLimit
Porosity below which we ensure that velocities are zero when computing .
Definition: mushyLayerOpt.h:666
bool ignoreBulkConcSteadyState
Turn on to ignore changes in bulk concentration when deciding if we've reached steady state...
Definition: mushyLayerOpt.h:350
int porousCellsShrink
Filter porous cells to remove anomalies.
Definition: mushyLayerOpt.h:937
Real plumeSalinityThreshold
Salinity threshold value for identifying plumes.
Definition: mushyLayerOpt.h:963
Real mushHeight
Approximate depth of mushy layer to create as part of an initial condition approximating some sea ice...
Definition: mushyLayerOpt.h:1153
bool scaleP_MAC
Whether or not the MAC (face-centred) projection should solve for a pressure that is scaled by the po...
Definition: mushyLayerOpt.h:616
Coarse-fine boundary condition used in the face-centred projection.
Definition: mushyLayerOpt.h:301
Rate of change of bulk concentration with time .
Definition: mushyLayerOpt.h:253
int timeIntegrationOrder
Order of accuracy for time integration (1 = backward euler, 2 = TGA)
Definition: mushyLayerOpt.h:1077
Real AMRMultigridTolerance
Solver tolerance.
Definition: mushyLayerOpt.h:804
bool HCHigherOrderLimiter
Whether to use a higher order flux limiter for enthalpy-bulk concentration advection.
Definition: mushyLayerOpt.h:902
bool tag_velocity
Whether we should tag cells where the fluid velocity (magnitude) is greater than MushyLayerOptions::v...
Definition: mushyLayerOpt.h:940
Real meltPondDepth
Depth of melt pond to add.
Definition: mushyLayerOpt.h:1162
Real min_time
Minimum time to run simulations for (even if the steady state condition has been met) ...
Definition: mushyLayerOpt.h:368
int lapVelBCOrder
Accuracy for boundary conditions applied to laplacian(velocity) in the advection velocity source term...
Definition: mushyLayerOpt.h:701
Tag porosity on level 0, and strong solute rich downflow thereafter.
Definition: mushyLayerOpt.h:32
Real surfaceIrradiance
If > 0, compute penetration of irradiance down through the ice.
Definition: mushyLayerOpt.h:1222
Real maxRaC
Max RaC when we're changing the buoyancy force at each timestep.
Definition: mushyLayerOpt.h:494
int tagCenterBoxSize
Tag cells in the centre of the domain to make a box of this size. Leave as 0 (default) to do nothing...
Definition: mushyLayerOpt.h:972
Pressure used in the face centred projection .
Definition: mushyLayerOpt.h:202
Rate of change of enthalpy with time .
Definition: mushyLayerOpt.h:250
Active scalar which is advected and also has sources/sinks.
Definition: mushyLayerOpt.h:313
bool enforceAnalyticVel
Whether to enforce an analytic velocity field.
Definition: mushyLayerOpt.h:677
RefluxMethod refluxMethod
Method to use for implicit refluxing.
Definition: mushyLayerOpt.h:774
bool usePrevPressureForUStar
Set the initial value for AMRLevelMushyLayer::m_usePrevPressureForUStar.
Definition: mushyLayerOpt.h:1044
Real diagnostics_period
Time period between successive diagnostic reports.
Definition: mushyLayerOpt.h:1050
int maxRestartWavenumbers
When restarting, if MushyLayerOptions::restartPerturbation > 0.0 then add a perturbation which if the...
Definition: mushyLayerOpt.h:1136
Real spongeHeight
Distance from the bottom of the domain that a sponge region will extend.
Definition: mushyLayerOpt.h:460
bool tagDomainBoundary
Whether we should tag the domain boundary for refinement.
Definition: mushyLayerOpt.h:921
Composite criteria for tagging cells.
Definition: mushyLayerOpt.h:45
bool projectAnalyticVel
Whether to project the enforced analytic velocity field.
Definition: mushyLayerOpt.h:683
Full Approximation Scheme (for nonlinear problems)
Definition: mushyLayerOpt.h:56
bool useFortranRegularisationFace
Turn on to use fortran routines for regularising the solution on cell faces (i.e. ensuring porosity i...
Definition: mushyLayerOpt.h:427
Real minDt
Minimum dt allowed.
Definition: mushyLayerOpt.h:387
Real taggingMarginalPorosityLimit
If less than 1, use this limit to identify cells with taggingMarginalPorosityLimit < porosity < 1...
Definition: mushyLayerOpt.h:969
int analyticSolution
Define the analytic solution to apply.
Definition: mushyLayerOpt.h:604
Real perturbationWavenumber
Wavenumber of sinusoidal perturbations (default = 0.0, i.e. just a uniform value) ...
Definition: mushyLayerOpt.h:1105
RefinementMethod refinementMethod
Method for refinement.
Definition: mushyLayerOpt.h:927
bool doSyncOperations
Whether or not to do synchronisation operations over multiple levels have reached the same time...
Definition: mushyLayerOpt.h:595
bool allowMulticompAdvection
Advect both enthalpy and bulk concentration at the same time (slightly more efficient) ...
Definition: mushyLayerOpt.h:1068
int viscous_num_smooth_down
Viscous solver - number of smoothing steps during a down sweep.
Definition: mushyLayerOpt.h:792
bool CCPressureSrc
Whether or not to include pressure in the cell centred velocity source term.
Definition: mushyLayerOpt.h:738
Real initial_dt_multiplier
Scale initial dt&#39;s by this factor.
Definition: mushyLayerOpt.h:384
Real lowerPorosityLimit
How much output multigrid operators should print.
Definition: mushyLayerOpt.h:1084
Face centred fluid velocity, as used for advection, which has been averaged to cell centres...
Definition: mushyLayerOpt.h:150
Real advVelsrcChiLimit
Porosity below which we ensure that the src term for computing advection velocities is 0...
Definition: mushyLayerOpt.h:660
int VelMGMaxIter
Max number of multigrid iterations.
Definition: mushyLayerOpt.h:828
bool apply_diagnostic_bcs
Whether to apply BCs to temperature, porosity etc. explicitly during multigrid solves.
Definition: mushyLayerOpt.h:551
Definition: mushyLayerOpt.h:126
bool HCMultigridUseRelaxBottomSolverForHC
Whether to use a relaxation scheme as the bottom solve.
Definition: mushyLayerOpt.h:868
RefluxMethod
Methods for doing implicit refluxing - i.e. what sort of equation to we solve for the correction...
Definition: mushyLayerOpt.h:78
velocityAdvectionTypes
Options for handling advection velocities, where S is the source term.
Definition: mushyLayerOpt.h:90
int velMGNumSmooth
Multigrid for implicit cell centred solve - num smoothing steps.
Definition: mushyLayerOpt.h:813
int HCMultigridRelaxMode
How to do relaxation.
Definition: mushyLayerOpt.h:862
Real fixedPorosityEndTime
If using a time dependent enforced porosity, stop changing it after this time has passed...
Definition: mushyLayerOpt.h:1197
int maxProjBaseLevel
Maximum number of projections to do on levle 0.
Definition: mushyLayerOpt.h:695
int HCMultigridBottomSolveIterations
Number of iterations of the bottom solver.
Definition: mushyLayerOpt.h:846
Bulk concentration .
Definition: mushyLayerOpt.h:187
bool doProjection
Whether or not to do projection.
Definition: mushyLayerOpt.h:576
bool ignoreSolveFails
Whether or not we want to ignore solvers failing.
Definition: mushyLayerOpt.h:514
bool advVelViscousSrc
Whether or not to include the viscous term in the advection velocity source.
Definition: mushyLayerOpt.h:720
Real max_dt_growth
Maximum allowed fractional increase in dt from one timestep to the next.
Definition: mushyLayerOpt.h:371
bool reflux_concentration
Whether or not to reflux the bulk concentration field.
Definition: mushyLayerOpt.h:759
Real max_init_dt
Maximum initial dt allowed.
Definition: mushyLayerOpt.h:393
int maxNumMACProj
Maximum number of MAC (face cented) projections to do.
Definition: mushyLayerOpt.h:698
Real solidPorosity
Porosity below which we enforce zero velocity.
Definition: mushyLayerOpt.h:648
bool computeDiagnostics
Whether or not to compute diagnostics ad hoc.
Definition: mushyLayerOpt.h:571
Real HCMultigridTolerance
Solver tolerance.
Definition: mushyLayerOpt.h:849
int analyticVelType
If enforcing an analytic velocity, decide what to use.
Definition: mushyLayerOpt.h:686
bool reflux_enthalpy
Whether or not to reflux the enthalpy field.
Definition: mushyLayerOpt.h:756
Real restart_new_time
If >= 0, and we&#39;re restarting, set the simulation time to this.
Definition: mushyLayerOpt.h:441
bool seedRandomPert
Definition: mushyLayerOpt.h:1121
Right hand side for the face-centred projection solve, .
Definition: mushyLayerOpt.h:307
bool CCAdvSrc
Whether or not to include in the cell centred velocity source term.
Definition: mushyLayerOpt.h:729
Analytic solute flux for test problems.
Definition: mushyLayerOpt.h:262
Real ccVelPorosityLimit
Porosity below which we ensure cell-centred velocities are 0.
Definition: mushyLayerOpt.h:657
double Real
Porosity varies with the y-direction cubed, .
Definition: mushyLayerOpt.h:123
solve
Definition: mushyLayerOpt.h:93
bool horizAverageRestart
Whether or not to horizontally average all fields before restarting.
Definition: mushyLayerOpt.h:1165
bool tag_plume_mush
Refine mushy regions on level 1, the refine around plumes according to some empirical criteria...
Definition: mushyLayerOpt.h:954
Liquidus phase boundary, .
Definition: mushyLayerOpt.h:220
Real perturbationPhaseShift
Phase shift for sinusoidal perturbations.
Definition: mushyLayerOpt.h:1096
bool writePressureInitFields
Whether to write out plotfiles during pressure initialisation.
Definition: mushyLayerOpt.h:1059
Real cfl
Maximum allowed CFL number.
Definition: mushyLayerOpt.h:359
Real velAdvArtVisc
Value of artifical viscosity to use for velocity advection solves.
Definition: mushyLayerOpt.h:887
Tag where the magnitude of some field is bigger than some values.
Definition: mushyLayerOpt.h:65
Vorticity (if calculated ad hoc during post processing)
Definition: mushyLayerOpt.h:280
bool useLimiting
Use slope limiting in advection calculations?
Definition: mushyLayerOpt.h:560
Liquid concentration .
Definition: mushyLayerOpt.h:196
Horizontally averaged vertical heat flux.
Definition: mushyLayerOpt.h:274
int CFinterpOrder_advection
Whether to do 1st order (set to 1) or 2nd order (set to 2) interpolation at coarse-fine boundaries...
Definition: mushyLayerOpt.h:539
Real steadyStateCondition
Maximum value by which the solution may have changed for us to have reached steady state...
Definition: mushyLayerOpt.h:344
Number of scalars variables.
Definition: mushyLayerOpt.h:320
Level divergence of the advection velocities .
Definition: mushyLayerOpt.h:247
Real restartPerturbation
Size of perturbation to add when restarting a simulation.
Definition: mushyLayerOpt.h:1139
bool scalarExchangeCorners
Whether to exchange corner cells by default for scalar fields.
Definition: mushyLayerOpt.h:1200
Real initialRandomPerturbation
Add an initial random perturbation to enthalpy.
Definition: mushyLayerOpt.h:1117
TaggingMethod
Strategy for tagging cells.
Definition: mushyLayerOpt.h:60
Contains most of the options for running the code, and how to handle the equations.
Definition: mushyLayerOpt.h:329
Real initialPerturbation
Size of the initial perturbation (default = 0.0)
Definition: mushyLayerOpt.h:1087
int taggingVectorVar
Vector variable to use for working out where to do refinement.
Definition: mushyLayerOpt.h:909
bool useAccelDt
Use the timesteps computed according to the cfl condition applied to accelerations.
Definition: mushyLayerOpt.h:412
int num_init_passes
Number of loops of the pressure initialisation routine.
Definition: mushyLayerOpt.h:438
Real velMGHang
Solver tolerance.
Definition: mushyLayerOpt.h:819
bool linearGradient
Whether to initialise with a linear enthalpy gradient in the vertical direction.
Definition: mushyLayerOpt.h:1150
Tag on some vector field given by taggingVectorVar.
Definition: mushyLayerOpt.h:38
Eutectic phase boundary, .
Definition: mushyLayerOpt.h:223
bool CCBuoyancySrc
Whether or not to include buoyancy in the cell centred velocity source term.
Definition: mushyLayerOpt.h:732
bool forceUseUChiForCFL
Force the code to compute a CFL condition based on the size of , rather than .
Definition: mushyLayerOpt.h:365
int velMGNumMG
Number of V-cycles to perform.
Definition: mushyLayerOpt.h:822
bool scalarHOinterp
Whether to do higher order interpolationg for scalars to fill new cells following regridding...
Definition: mushyLayerOpt.h:984
bool perturbationSin
If true, sinusoidal perturbations take the form of a sin wave. Otherwise a cosine wave...
Definition: mushyLayerOpt.h:1114
Porosity looks like a gaussian, .
Definition: mushyLayerOpt.h:114
Real fixed_grid_time
If this is > 0, then when time > fixed_grid_time we will switch to the grid specified by &#39;main...
Definition: mushyLayerOpt.h:918
int verbosity
How much text output to produce on a scale of 0 -> infinity.
Definition: mushyLayerOpt.h:557
int HCMultigridNumSmoothUp
Multigrid for the coupled enthalpy-bulk concentration solve: number of smooths on each up sweep...
Definition: mushyLayerOpt.h:831
Real regrid_dt_scale
Factor by which to scale dt for re-initialising pressure following regridding.
Definition: mushyLayerOpt.h:996
Source term for the velocity advection.
Definition: mushyLayerOpt.h:159
bool initLambdaPostRegrid
Whether or not to recalculate lambda after regridding.
Definition: mushyLayerOpt.h:999
bool nonlinearHCOpSuperOptimised
Whether we want to try and do some dodgy stuff to make the enthalpy-bulk concentration nonlinear solv...
Definition: mushyLayerOpt.h:545
Tag where channels are.
Definition: mushyLayerOpt.h:26
Tag where the value of some field multiplied by -1 is larger than some criteria.
Definition: mushyLayerOpt.h:74
bool useFortranRegularisation
Turn on using fortran routines for regularising the solution on cell centres (i.e. ensuring porosity is not 0)
Definition: mushyLayerOpt.h:430
Porosity varies linearly with x, .
Definition: mushyLayerOpt.h:111
linear correction
Definition: mushyLayerOpt.h:80
Some analytically calculated temperature field .
Definition: mushyLayerOpt.h:229
bool reflux_momentum
Whether or not to reflux momentum.
Definition: mushyLayerOpt.h:750
Real porousHoleRadius
Create a porous hole of this radius during initialisation.
Definition: mushyLayerOpt.h:1143
bool testRegridCoarsening
For testing: if turned on, refined levels will only exist for one regrid cycle before being removed...
Definition: mushyLayerOpt.h:981
int solverFailRestartMethod
What to do if a solver fails and we&#39;re not ignoring the problem.
Definition: mushyLayerOpt.h:517
Real initRaT
Initial RaT when we&#39;re changing the buoyancy force at each timestep.
Definition: mushyLayerOpt.h:491
bool do_postRegrid_smoothing
Whether or not to do some smoothing after regridding.
Definition: mushyLayerOpt.h:1020
int HCMultigridNumMG
Number of V-cycles to do.
Definition: mushyLayerOpt.h:837
Real HCMultigridNormThresh
Condition on the norm of the residual for convergence.
Definition: mushyLayerOpt.h:855
bool debug
Turn on to produce lots of output.
Definition: mushyLayerOpt.h:341
int AMRMultigridVerb
Verbosity for the enthalpy-bulk concentration reflux solver.
Definition: mushyLayerOpt.h:801
bool useIncrementalPressure
Whether or not to use the previous pressure when solving Darcy&#39;s equation.
Definition: mushyLayerOpt.h:582
bool computeVorticityStreamFunction
Turn on to compute the vorticity/streamfunction as a diagnostic.
Definition: mushyLayerOpt.h:421
Porosity = 1.0 everywhere.
Definition: mushyLayerOpt.h:108
Gaussian with some sinuosoidal variation, .
Definition: mushyLayerOpt.h:117
Real refineThresh
Refinement threshold.
Definition: mushyLayerOpt.h:566
bool initAnalyticVel
Whether or not to initialise the velocity to an analytically specified value.
Definition: mushyLayerOpt.h:689
int restart_perturbation_var
When restarting, add a perturbation to this variable.
Definition: mushyLayerOpt.h:1168
Real initAdvVelCentering
At which time to compute advection velocities during initialisation.
Definition: mushyLayerOpt.h:503
Real rampBuoyancy
Fractional increase in the buoyancy force with each timestep.
Definition: mushyLayerOpt.h:485
Real advPorosityLimit
Porosity below which we ensure advection velocities are 0.
Definition: mushyLayerOpt.h:651
Computes if required.
Definition: mushyLayerOpt.h:238
bool includeTracers
Whether to include tracer dynamics.
Definition: mushyLayerOpt.h:1219
bool init_use_prev_pressure_for_Ustar
Whether to use previous estimates of the pressure to compute the initial cell centred ...
Definition: mushyLayerOpt.h:447
Porosity = 0.1.
Definition: mushyLayerOpt.h:120
bool useOldAdvVel
Use advection velocity from previous timestep for tracing advection velocities.
Definition: mushyLayerOpt.h:674
bool skipSaltUpdate
Turn on to set the advective source term in the salt equation to 0.
Definition: mushyLayerOpt.h:466
solve du/dt + u.grad(u) = S
Definition: mushyLayerOpt.h:99
Real dtReductionFactor
Facotr by which to reduce dt after restarting: .
Definition: mushyLayerOpt.h:1185
bool reflux_lambda
Whether or not to reflux lambda.
Definition: mushyLayerOpt.h:765
Passive scalar advcted by flow.
Definition: mushyLayerOpt.h:310
PorosityFunctions
Different options for enforcing a fixed porosity.
Definition: mushyLayerOpt.h:105
Real prevRefSalinity
Previous reference salinity for nondimensionalisation (if restarting and different from the new value...
Definition: mushyLayerOpt.h:1179
int taggingVar
Scalar variable to use for working out where to do refinement.
Definition: mushyLayerOpt.h:906
bool HCUseFourthOrderSlopes
Whether to use 4th order slopes for enthalpy-bulk concentration advection.
Definition: mushyLayerOpt.h:899
int HCMultigridVerbosity
How much output to print.
Definition: mushyLayerOpt.h:843
Real fixedPorosityMaxChi
Fixed porosity maximum value.
Definition: mushyLayerOpt.h:1188
Real initVel
Size of initial velocity if required.
Definition: mushyLayerOpt.h:1093
int summerProfile
Different options for initialising data that looks a bit like year old sea ice.
Definition: mushyLayerOpt.h:1159
Definition: mushyLayerOpt.h:214
Real AMRMultigridHang
Solver hang condition.
Definition: mushyLayerOpt.h:807
bool velAdvUseArtVisc
Whether to use artifical viscosity for velocity advection solves.
Definition: mushyLayerOpt.h:881
bool initResetStates
When initialising pressure via multiple iterations, decide whether or not to reset the other fields b...
Definition: mushyLayerOpt.h:1062
Real delayedPerturbation
Size of perturbation to add at time MushyLayerOptions::perturbationTime.
Definition: mushyLayerOpt.h:1099
Intensity of radiation from the surface.
Definition: mushyLayerOpt.h:316
Vertical component of the solute flux .
Definition: mushyLayerOpt.h:265
Real regrid_smoothing_coeff
Coefficient to determine how aggressively to do smoothing (if MushyLayerOptions::do_postRegrid_smooth...
Definition: mushyLayerOpt.h:1023
bool regrid_freestream_subcycle
Whether or not to do subcycling when advecting lambda after regridding.
Definition: mushyLayerOpt.h:1011
bool tag_channels
Just refine around channels.
Definition: mushyLayerOpt.h:957
bool useInitAccelDt
For the first timestep, use dt computed according to the cfl condition applied to accelerations...
Definition: mushyLayerOpt.h:415
Right hand side for the face-centred projection solve, .
Definition: mushyLayerOpt.h:304
Pressure calculated in cell-centred projection .
Definition: mushyLayerOpt.h:298
bool doScalarAdvectionDiffusion
Whether or not we should do advection and diffusion of scalars (enthalpy, bulk concentration) ...
Definition: mushyLayerOpt.h:1090
Enthalpy .
Definition: mushyLayerOpt.h:184
Real min_regrid_time
Don&#39;t start regridding until time > min_regrid_time.
Definition: mushyLayerOpt.h:915
Pressure calculated in face-centred projection .
Definition: mushyLayerOpt.h:295
bool scaleP_CC
Whether or not the CC (cell-centred) projection should solve for a pressure that is scaled by the por...
Definition: mushyLayerOpt.h:623
bool regrid_init_pressure
Whether or not to initialize pressure after regridding.
Definition: mushyLayerOpt.h:1035
Explicit source term for the enthalpy update.
Definition: mushyLayerOpt.h:244
Real refluxCorrSign
Whether to add (+1) or subtract (-1) the correction.
Definition: mushyLayerOpt.h:786
Real init_dt_scale
Multiply the dt computed during initialisation procedures by this factor before using it...
Definition: mushyLayerOpt.h:378
Fluid velocity divided by porosity, .
Definition: mushyLayerOpt.h:135
Unprojected face centred fluid velocity, as used for advection, which has been averaged to cell centr...
Definition: mushyLayerOpt.h:144
Real tagCenterBoxRegridTime
If MushyLayerOptions::tagCenterBoxSize > 0, then regrid once time > tagCenterBoxRegridTime.
Definition: mushyLayerOpt.h:975
Real CCVelSrcTermCentering
Where to compute the CC velocity source term (default = 0.5 i.e. halfway through the timestep) ...
Definition: mushyLayerOpt.h:704
bool velAdvHigherOrderLimiter
Whether to use a higher order flux limiter for velocity advection solves.
Definition: mushyLayerOpt.h:878
Real maxDivUFace
Try and make sure the maximum divergence of the face centred velocity is less than this...
Definition: mushyLayerOpt.h:609
bool ignoreVelocitySteadyState
Turn on to ignore changes in velocity when deciding if we&#39;ve reached steady state.
Definition: mushyLayerOpt.h:347
bool reflux_normal_momentum
Whether or not to just reflux momentum in the normal direction.
Definition: mushyLayerOpt.h:753
bool advVelPressureSrc
Whether or not to include pressure in the advection velocity source term.
Definition: mushyLayerOpt.h:714
bool init_compute_uDelu
Whether to compute terms during initialisation.
Definition: mushyLayerOpt.h:454
Level divergence of the cell centred velocity field .
Definition: mushyLayerOpt.h:268
Real domainHeight
Domain height.
Definition: mushyLayerOpt.h:356
Normal linear multigrid.
Definition: mushyLayerOpt.h:53
bool useIncrementalPressureRefinedLevels
Whether or not to solve for an incremental pressure change on fine levels, rather than the full press...
Definition: mushyLayerOpt.h:588
bool doDiffusionSrc
Use a diffusive source term to compute the advective terms more accurately.
Definition: mushyLayerOpt.h:478
bool onlyTagPorousCells
Turn on to only tags cells where other refinement criteria are met and porosity . ...
Definition: mushyLayerOpt.h:930
Real velMGTolerance
Solver tolerance.
Definition: mushyLayerOpt.h:816
Real AMRMultigridNormThresh
If residual norm is less than this absolute value, solver decides we&#39;ve converged.
Definition: mushyLayerOpt.h:810
Real buoyancy_zero_time
Set buoyancy forces to zero after this time.
Definition: mushyLayerOpt.h:1203
Real uDelU_porosityLimit
Porosity below which we ensure that the part of the cell-centred source term is 0.
Definition: mushyLayerOpt.h:663
int viscous_num_smooth_up
Viscous solver - number of smoothing steps during an up sweep.
Definition: mushyLayerOpt.h:795
Porosity .
Definition: mushyLayerOpt.h:193
VectorVars
Cell centred vector field.
Definition: mushyLayerOpt.h:130
Real refTemp
Reference temperature for nondimensionalisation.
Definition: mushyLayerOpt.h:1173
Inertial term .
Definition: mushyLayerOpt.h:156
MGmethod
Different multigrid methods.
Definition: mushyLayerOpt.h:51
Real adv_vel_centering_growth
Definition: mushyLayerOpt.h:507
bool useSubcycling
Whether or not to do subcycling.
Definition: mushyLayerOpt.h:554
bool viscousBCs
Whether or not we want to use viscous boundary conditions.
Definition: mushyLayerOpt.h:435
Tag on some scalar field given by taggingVar.
Definition: mushyLayerOpt.h:35
Real regrid_eta_scale
Option to scale before recomputing the freestream correction after regridding.
Definition: mushyLayerOpt.h:1017
velocityAdvectionTypes advectionMethod
Specify how to treat the term.
Definition: mushyLayerOpt.h:1216
solve du/dt + (u/porosity).grad(u) = S + (u.grad(porosity)/porosity^2)u
Definition: mushyLayerOpt.h:96
bool vectorHOinterp
Whether to do higher order interpolation for vectors to fill new cells following regridding.
Definition: mushyLayerOpt.h:987
bool advVelDarcySrc
Whether or not to include the Darcy term in the advection velocity source.
Definition: mushyLayerOpt.h:717
Real vel_thresh
If MushyLayerOptions::tag_velocity is true, specify the velocity magnitude criteria here...
Definition: mushyLayerOpt.h:946
bool compositeChannelTagging
New option for a refinement method based on a composite criteria.
Definition: mushyLayerOpt.h:943
bool regrid_linear_interp
Whether to do bi-linear interpolation when regridding.
Definition: mushyLayerOpt.h:1038
int HCNormalPredOrder
Order of the normal predictor for enthalpy-bulk concentration advection.
Definition: mushyLayerOpt.h:896
bool enforceAnalyticSoln
Whether or not to enforce an analytic solution at the start of the simulation.
Definition: mushyLayerOpt.h:598
Viscosity .
Definition: mushyLayerOpt.h:208
bool skipUnsafeCFL
TODO: remove this.
Definition: mushyLayerOpt.h:362
Temperature, .
Definition: mushyLayerOpt.h:190
int max_possible_level
Maximum level allowed in this AMR hierarchy.
Definition: mushyLayerOpt.h:418
bool advVelBuoyancySrc
Whether or not to include buoyancy in the advection velocity source term.
Definition: mushyLayerOpt.h:723
int HCMultigridNumSmoothDown
Number of smooths on each down sweep.
Definition: mushyLayerOpt.h:834
int steadyStateNormType
When testing for steady state can consider different norms of the solution.
Definition: mushyLayerOpt.h:528
Horizontally averaged vertical solute flux.
Definition: mushyLayerOpt.h:259
linear variable-coefficient correction
Definition: mushyLayerOpt.h:83
bool multiCompUStarSolve
Solve for all velocity componenents at once. Not currently implemented.
Definition: mushyLayerOpt.h:642
MGmethod MGtype
If this is set to greater than 0,.
Definition: mushyLayerOpt.h:1213
int customInitData
Some custom options for initial data.
Definition: mushyLayerOpt.h:1053
Number of vector variables.
Definition: mushyLayerOpt.h:178
bool HCUseArtVisc
Whether to use artificial viscosity for enthalpy-bulk concentration advection.
Definition: mushyLayerOpt.h:890
bool printAccelDt
Turn on to print some diagnostics about the dt computed according to acceleration considerations...
Definition: mushyLayerOpt.h:409
Auxillary field lambda for computing the freestream correction.
Definition: mushyLayerOpt.h:211
Real plumeVelThreshold
Velocity theshold value for identifying plumes.
Definition: mushyLayerOpt.h:960
Real accelCFL
CFL number for acceleration. Only used if useAccelDt = true.
Definition: mushyLayerOpt.h:406
Real domainWidth
Domain width.
Definition: mushyLayerOpt.h:353
string plotfile_prefix
Prefix for plot files.
Definition: mushyLayerOpt.h:335
Tag where these is strong downflow in the mushy layer.
Definition: mushyLayerOpt.h:29
int HCMultigridMaxIter
Max number of multigrid iterations.
Definition: mushyLayerOpt.h:840
bool skipHCUpdate
Turn on to stop evolving the enthalpy and bulk concentration fields.
Definition: mushyLayerOpt.h:469
Real prevRefTemp
Previous reference temperature for nondimensionalisation (if restarting and different from the new va...
Definition: mushyLayerOpt.h:1182
Real perturbationTime
Specific time at which to introduce a perturbation.
Definition: mushyLayerOpt.h:1102
Tag where the undivided gradient of some field is bigger than some value.
Definition: mushyLayerOpt.h:62
RefinementMethod
Different ways to add refinement.
Definition: mushyLayerOpt.h:21
Unprojected cell centred fluid velocity, .
Definition: mushyLayerOpt.h:138
Real refSalinity
Reference salinity for nondimensionalisation.
Definition: mushyLayerOpt.h:1176
Tag where fluid speed exceeds threshold.
Definition: mushyLayerOpt.h:23
Real fixedPorosity
Porosity value to set if we&#39;re using a fixed porosity.
Definition: mushyLayerOpt.h:1127
Explicit source term for the bulk concentration update.
Definition: mushyLayerOpt.h:235
Cell centred fluid velocity, .
Definition: mushyLayerOpt.h:132
Real HCMultigridHang
Hang condition.
Definition: mushyLayerOpt.h:852
bool velAdvUseFourthOrderSlopes
Whether to use 4th order slopes for velocity advection solves.
Definition: mushyLayerOpt.h:875
bool initialize_pressures
Whether or not to initialize pressures.
Definition: mushyLayerOpt.h:1032
Streamfunction (if calculated ad hoc during post processing)
Definition: mushyLayerOpt.h:277
bool minimalOutput
Turn on to only produce a minimal ammount of output.
Definition: mushyLayerOpt.h:338
Permeability .
Definition: mushyLayerOpt.h:205
Real initVelScale
Velocity scale for the initial conditions.
Definition: mushyLayerOpt.h:1146
bool usePiAdvectionBCs
Use the cell centred pressure as the boundary condition when solving for the face centred pressure ...
Definition: mushyLayerOpt.h:632
Real HCArtVisc
Value of artificial viscosity to use for enthalpy-bulk concentration advection.
Definition: mushyLayerOpt.h:893
Real max_dt
Maximum dt allowed.
Definition: mushyLayerOpt.h:390
Real fixedPorosityFractionalInnerRadius
For a fixed porosity which varies linearly from some constant value inside the domain to the edge...
Definition: mushyLayerOpt.h:1194
Solid concentration .
Definition: mushyLayerOpt.h:199
Real velMGNormThresh
Residual norm condition for convergence.
Definition: mushyLayerOpt.h:825
nonlinear correction
Definition: mushyLayerOpt.h:86
bool makeRegridPlots
Whether or not to produce lots of plot files during regridding.
Definition: mushyLayerOpt.h:993
Solidus phase boundary, .
Definition: mushyLayerOpt.h:217
string output_dir
Output directory for plot and checkpoint files.
Definition: mushyLayerOpt.h:332
bool load_advVel
Whether we want to try and load the advection velocity from a restart file.
Definition: mushyLayerOpt.h:536
Some analytically calculated porosity field .
Definition: mushyLayerOpt.h:226
Tag where the value of some field is larger than some criteria.
Definition: mushyLayerOpt.h:68
Real maxRaT
Max RaT when we&#39;re changing the buoyancy force at each timestep.
Definition: mushyLayerOpt.h:497
PorosityFunctions porosityFunction
Functional form to use for the porosity if using a fixed porosity (rather than a porosity computed fr...
Definition: mushyLayerOpt.h:1133
bool project_initial_vel
Whether or not to project the initial velocity field.
Definition: mushyLayerOpt.h:1029
bool compute_initial_VD_corr
Whether or not to compute the volume discrepancy correction at the start of a simulation.
Definition: mushyLayerOpt.h:1074
int tagBufferSize
Number of cells to add around tagged cells before computing new meshes.
Definition: mushyLayerOpt.h:563
Real refluxBetaSign
Coefficient of the laplacian operator during implicit reflux solves.
Definition: mushyLayerOpt.h:780
bool refluxAverageDown
Whether or not to average down from fine levels to coarser levels after refluxing.
Definition: mushyLayerOpt.h:771
Real FixedPorositySTD
Standard deviation of the gaussian used to create a fixed porosity field.
Definition: mushyLayerOpt.h:1191
Real initRaC
Initial RaC when we&#39;re changing the buoyancy force at each timestep.
Definition: mushyLayerOpt.h:488
int velAdvNormalPredOrder
Order of the normal predictor for velocity advection solves.
Definition: mushyLayerOpt.h:872
bool CCPressureSrcOverride
Turn to make sure we use MushyLayerOptions::CCPressureSrc to decide whether or not to include pressur...
Definition: mushyLayerOpt.h:745
Real viscous_solver_tol
Solver tolerance for the viscous solver, which we use for smoothing scalar fields and doing momentum ...
Definition: mushyLayerOpt.h:789
TaggingMethod taggingMethod
Strategy for tagging cells. See TaggingMethod for the options.
Definition: mushyLayerOpt.h:912
bool tagMLboundary
Whether we should tag the mush-liquid boundary for refinement.
Definition: mushyLayerOpt.h:924
int projection_verbosity
How much output the projection object should generate.
Definition: mushyLayerOpt.h:635
ScalarVars
Identifiers for different scalar variables.
Definition: mushyLayerOpt.h:182
Real chiLimit
If > 0, use Darcy&#39;s equation to compute velocities in cells with porosity less than this value...
Definition: mushyLayerOpt.h:654
bool regrid_advect_before_freestream
Whether or not to advect lambda after regridding, in order to recompute the freestream correction...
Definition: mushyLayerOpt.h:1005