Contents

function [UserVar,CtrlVar,MeshBoundaryCoordinates]=Ua2D_InitialUserInput(UserVar,CtrlVar)

This input file is used if Ua is run directly from the source code folder.

You will always need to create your own version of this file and put it into you working directory together with the other user-input m-files.

UserVar.MisExperiment='ice0';            % This I use in DefineMassBalance
UserVar.Outputsdirectory='ResultsFiles'; % This I use in UaOutputs
CtrlVar.Experiment=['MismipPlus-',UserVar.MisExperiment];

Types of run

CtrlVar.TimeDependentRun=1;
CtrlVar.TotalNumberOfForwardRunSteps=3;
CtrlVar.TotalTime=100;
CtrlVar.Restart=0;


CtrlVar.dt=0.01;
CtrlVar.time=0;

CtrlVar.UaOutputsDt=0; % interval between calling UaOutputs. 0 implies call it at each and every run step.
                       % setting CtrlVar.UaOutputsDt=1; causes UaOutputs to be called every 1 years.
                       % This is a more reasonable value once all looks OK.

CtrlVar.ATStimeStepTarget=1;
CtrlVar.WriteRestartFile=1;

Reading in mesh

CtrlVar.ReadInitialMesh=0;    % if true then read FE mesh (i.e the MUA variable) directly from a .mat file
                              % unless the adaptive meshing option is used, no further meshing is done.
CtrlVar.ReadInitialMeshFileName='AdaptMesh.mat';
CtrlVar.SaveInitialMeshFileName='NewMeshFile.mat';

Plotting options

CtrlVar.doplots=1;
CtrlVar.PlotMesh=1;
CtrlVar.PlotBCs=1;
CtrlVar.WhenPlottingMesh_PlotMeshBoundaryCoordinatesToo=1;
CtrlVar.doRemeshPlots=1;
CtrlVar.PlotXYscale=1000;
CtrlVar.TriNodes=3;


CtrlVar.NameOfRestartFiletoWrite=['Restart',CtrlVar.Experiment,'.mat'];
CtrlVar.NameOfRestartFiletoRead=CtrlVar.NameOfRestartFiletoWrite;

adapt mesh

%CtrlVar.InfoLevelAdaptiveMeshing=100;


% very coarse mesh resolution
CtrlVar.MeshSize=20e3;       % over-all desired element size
CtrlVar.MeshSizeMax=20e3;    % max element size
CtrlVar.MeshSizeMin=0.05*CtrlVar.MeshSize;     % min element size

% reasonably fine mesh resolution
%CtrlVar.MeshSize=8e3;       % over-all desired element size
%CtrlVar.MeshSizeMax=8e3;    % max element size
%CtrlVar.MeshSizeMin=200;    % min element size

CtrlVar.MaxNumberOfElements=250e3;           % max number of elements. If #elements larger then CtrlMeshSize/min/max are changed

CtrlVar.AdaptMesh=1;           %
CtrlVar.SaveAdaptMeshFileName='AdaptMesh.mat';



CtrlVar.AdaptMeshInitial=1 ;       % if true, then a remeshing will always be performed at the inital step
CtrlVar.AdaptMeshAndThenStop=0;    % if true, then mesh will be adapted but no further calculations performed
                                   % useful, for example, when trying out different remeshing options (then use CtrlVar.doRemeshPlots=1 to get plots)
CtrlVar.doAdaptMeshPlots=0;       % if true and if CtrlVar.doplots true also, then do some extra plotting related to adapt meshing

%CtrlVar.RefineCriteria={'flotation','thickness curvature','||grad(dhdt)||'};
%CtrlVar.RefineCriteriaWeights=[1,1,1];                %
CtrlVar.RefineCriteriaFlotationLimit=[NaN,NaN];

CtrlVar.RefineCriteria={'flotation','thickness gradient'};
CtrlVar.RefineCriteriaWeights=[1,0.75];                %

CtrlVar.RefineCriteria={'thickness gradient'};
CtrlVar.RefineCriteriaWeights=[1];                %

CtrlVar.AdaptMeshInterval=1;  % number of run-steps between mesh adaptation
CtrlVar.AdaptMeshIterations=1;


CtrlVar.MeshAdapt.GLrange=[10000 5000 ; 3000 2000];

Pos. thickness constraints

CtrlVar.ThickMin=1; % minimum allowed thickness without (potentially) doing something about it
CtrlVar.ResetThicknessToMinThickness=0;  % if true, thickness values less than ThickMin will be set to ThickMin
CtrlVar.ThicknessConstraints=1  ;        % if true, min thickness is enforced using active set method
CtrlVar.ThicknessConstraintsItMax=5  ;
xd=640e3; xu=0e3 ; yr=0 ; yl=80e3 ;
MeshBoundaryCoordinates=[xu yr ; xu yl ; xd yl ; xd yr];
end