Changeset 27411


Ignore:
Timestamp:
11/22/22 07:43:43 (2 years ago)
Author:
vverjans
Message:

CHG: adding NightlyRun files as examples of ARMA and Stochastic capabilities

Location:
issm/trunk-jpl/test
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/test/NightlyRun/test543.m

    r27354 r27411  
    1 %Test Name: PigTranStochasticforcing
     1%Test Name: PigTranRignotarma
    22md=triangle(model(),'../Exp/Pig.exp',10000.);
    33md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
     
    2121    end
    2222end
    23 % Basin separation default
    24 idb_df = zeros(md.mesh.numberofelements,1);
    25 iid1   = find(md.mesh.x<=-1.62e6);
    26 for ii=1:md.mesh.numberofelements
    27     for vertex=1:3
    28         if any(iid1==md.mesh.elements(ii,vertex)) %one vertex in basin 1
    29             idb_df(ii) = 1;
    30         end
    31     end
    32     if idb_df(ii)==0 %no vertex was found in basin 1
    33         idb_df(ii) = 2;
    34     end
    35 end
    3623% Dimensionalities
    3724nb_tf    = 2;
    38 nb_clv   = 2;
    39 nb_flmlt = 2;
    4025
    4126%Calving parameters
    4227md.mask.ice_levelset = 1e4*(md.mask.ice_levelset + 0.5);
    43 md.calving.calvingrate = 0.3*ones(md.mesh.numberofvertices,1);
     28md.calving.calvingrate = 0*ones(md.mesh.numberofvertices,1);
    4429md.levelset.spclevelset = NaN(md.mesh.numberofvertices,1);
    4530md.levelset.migration_max = 10.0; %avoid fast advance/retreat of the front
     
    115100end
    116101% Floating Ice Melt parameters
    117 md.basalforcings.floatingice_melting_rate = 0.1*ones(md.mesh.numberofvertices,1);
     102md.basalforcings.floatingice_melting_rate = 0*ones(md.mesh.numberofvertices,1);
    118103
    119104
    120105% Covariance matrix
    121106covtf       = 1e-4*eye(nb_tf);
    122 covclv      = 1e-1*eye(nb_clv);
    123 covclv(1,1) = 1/10*covclv(1,1);
    124 covflmlt    = 0.05*eye(nb_flmlt);
    125107covsd       = 1e3*eye(nb_tf);
    126 covglob     = blkdiag(covtf,covclv,covflmlt,covsd);
     108covglob     = blkdiag(covtf,covsd);
    127109
    128110%Stochastic forcing
    129111md.stochasticforcing.isstochasticforcing = 1;
    130 md.stochasticforcing.fields              = [{'FrontalForcingsRignotarma'},{'DefaultCalving'},{'FloatingMeltRate'},{'FrontalForcingsSubglacialDischargearma'}];
     112md.stochasticforcing.fields              = [{'FrontalForcingsRignotarma'},{'FrontalForcingsSubglacialDischargearma'}];
    131113md.stochasticforcing.defaultdimension    = 2;
    132 md.stochasticforcing.default_id          = idb_df;
     114md.stochasticforcing.default_id          = idb_tf;
    133115md.stochasticforcing.covariance          = covglob; %global covariance among- and between-fields
    134116md.stochasticforcing.randomflag          = 0; %determines true/false randomness
     
    137119md.transient.isgroundingline = 1;
    138120
    139 md.transient.requested_outputs = {'default','CalvingCalvingrate','CalvingMeltingrate','BasalforcingsFloatingiceMeltingRate'};
     121md.transient.requested_outputs = {'default','CalvingMeltingrate'};
    140122md.cluster=generic('name',oshostname(),'np',2);
    141123md=solve(md,'Transient');
     
    143125%Fields and tolerances to track changes
    144126field_names ={...
    145    'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' ,'MaskIceLevelset1' ,'CalvingCalvingrate1' ,'CalvingMeltingrate1' ,'BasalforcingsFloatingiceMeltingRate1',...
    146    'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingCalvingrate2' ,'CalvingMeltingrate2' ,'BasalforcingsFloatingiceMeltingRate2',...
    147    'Vx10','Vy10','Vel10','Thickness10','MaskIceLevelset10','CalvingCalvingrate10','CalvingMeltingrate10','BasalforcingsFloatingiceMeltingRate10',...
     127   'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' ,'MaskIceLevelset1' ,'CalvingMeltingrate1' ,...
     128   'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingMeltingrate2' ,...
     129   'Vx10','Vy10','Vel10','Thickness10','MaskIceLevelset10','CalvingMeltingrate10',...
    148130   };
    149131field_tolerances={...
    150    1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,1e-10,1e-10,...
    151    2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,1e-10,1e-10,...
    152    2e-6,1e-6,1e-6,1e-6,5e-6,1e-6,1e-6,1e-6,...
     132   1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,...
     133   2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,...
     134   2e-6,1e-6,1e-6,1e-6,5e-6,1e-6,...
    153135   };
    154136field_values={...
     
    158140   (md.results.TransientSolution(1).Thickness),...
    159141   (md.results.TransientSolution(1).MaskIceLevelset),...
    160    (md.results.TransientSolution(1).CalvingCalvingrate),...
    161142   (md.results.TransientSolution(1).CalvingMeltingrate),...
    162    (md.results.TransientSolution(1).BasalforcingsFloatingiceMeltingRate),...
    163143   (md.results.TransientSolution(20).Vx),...
    164144   (md.results.TransientSolution(20).Vy),...
     
    166146   (md.results.TransientSolution(20).Thickness),...
    167147   (md.results.TransientSolution(20).MaskIceLevelset),...
    168    (md.results.TransientSolution(20).CalvingCalvingrate),...
    169148   (md.results.TransientSolution(20).CalvingMeltingrate),...
    170    (md.results.TransientSolution(20).BasalforcingsFloatingiceMeltingRate),...
    171149        (md.results.TransientSolution(40).Vx),...
    172150        (md.results.TransientSolution(40).Vy),...
     
    174152        (md.results.TransientSolution(40).Thickness),...
    175153        (md.results.TransientSolution(40).MaskIceLevelset),...
    176         (md.results.TransientSolution(40).CalvingCalvingrate),...
    177154        (md.results.TransientSolution(40).CalvingMeltingrate),...
    178         (md.results.TransientSolution(40).BasalforcingsFloatingiceMeltingRate),...
    179155        };
  • issm/trunk-jpl/test/NightlyRun/test543.py

    r27354 r27411  
    1 #Test Name: PigTranStochasticforcing
     1#Test Name: PigTranRignotarma
    22import numpy as np
    33from frontalforcingsrignotarma import frontalforcingsrignotarma
     
    2929        for vertex in range(3):
    3030            idb_tf[ii] = 2
    31 # Basin separation default
    32 idb_df = np.zeros((md.mesh.numberofelements,))
    33 iid1 = np.where(md.mesh.x <= -1.62e6)[0]
    34 for ii in range(md.mesh.numberofelements):
    35     for vertex in range(3):
    36         if md.mesh.elements[ii][vertex] - 1 in iid1:  # one vertex in basin 1; NOTE: offset because of 1-based vertex indexing
    37             idb_df[ii] = 1
    38     if idb_df[ii] == 0:  # no vertex was found in basin 1
    39         for vertex in range(3):
    40             idb_df[ii] = 2
    4131#Dimensionalities
    4232nb_tf = 2
    43 nb_clv  = 2
    44 nb_flmlt = 2
    4533
    4634# Calving parameters
    4735md.mask.ice_levelset = 1e4 * (md.mask.ice_levelset + 0.5)
    48 md.calving.calvingrate = 0.3 * np.ones((md.mesh.numberofvertices,))
     36md.calving.calvingrate = 0 * np.ones((md.mesh.numberofvertices,))
    4937md.levelset.spclevelset = np.full((md.mesh.numberofvertices,), np.nan)
    5038md.levelset.migration_max = 10.0
     
    119107    md.frontalforcings.sd_polynomialparams   = sd_polyparam
    120108#Floating Ice Melt parameters
    121 md.basalforcings.floatingice_melting_rate = 0.1 * np.ones((md.mesh.numberofvertices,))
     109md.basalforcings.floatingice_melting_rate = 0.0 * np.ones((md.mesh.numberofvertices,))
    122110
    123111#Covariance matrix
    124112covtf = 1e-4 * np.identity(nb_tf)
    125 covclv = 1e-1 * np.identity(nb_clv)
    126 covclv[0, 0] = 1 / 10 * covclv[0, 0]
    127 covflmlt = 0.05 * np.identity(nb_flmlt)
     113covsd = 1e3 * np.identity(nb_tf)
    128114#covglob          = np.zeros([6,6])
    129115#covglob[0:2,0:2] = covtf
     
    132118
    133119#Hard-coding covariance matrix because python is complaining
    134 covglob = np.array([[1e-4, 0., 0., 0., 0., 0.,0.,0.],
    135                     [0., 1e-4, 0., 0., 0., 0.,0.,0.],
    136                     [0., 0., 1e-2, 0., 0., 0.,0.,0.],
    137                     [0., 0., 0., 1e-1, 0., 0.,0.,0.],
    138                     [0., 0., 0., 0., 0.05, 0.,0.,0.],
    139                     [0., 0., 0., 0., 0., 0.05,0.,0.],
    140                     [0., 0., 0., 0., 0., 0., 1e3,0.],
    141                     [0., 0., 0., 0., 0., 0.,0., 1e3]])
     120covglob = np.array([[1e-4, 0., 0., 0.],
     121                    [0., 1e-4, 0., 0.],
     122                    [0., 0., 1e3, 0.],
     123                    [0., 0., 0., 1e3]])
    142124#testchol = np.linalg.cholesky(covglob)
    143125#print(testchol)
     
    145127# Stochastic forcing
    146128md.stochasticforcing.isstochasticforcing = 1
    147 md.stochasticforcing.fields = ['FrontalForcingsRignotarma', 'DefaultCalving', 'FloatingMeltRate','FrontalForcingsSubglacialDischargearma']
     129md.stochasticforcing.fields = ['FrontalForcingsRignotarma','FrontalForcingsSubglacialDischargearma']
    148130md.stochasticforcing.defaultdimension = 2
    149 md.stochasticforcing.default_id = idb_df
     131md.stochasticforcing.default_id = idb_tf
    150132md.stochasticforcing.covariance = covglob  # global covariance among- and between-fields
    151133md.stochasticforcing.randomflag = 0  # determines true/false randomness
     
    160142# Fields and tolerances to track changes
    161143field_names = [
    162     'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingCalvingrate1', 'CalvingMeltingrate1', 'BasalforcingsFloatingiceMeltingRate1',
    163     'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingCalvingrate2', 'CalvingMeltingrate2', 'BasalforcingsFloatingiceMeltingRate2',
    164     'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingCalvingrate10', 'CalvingMeltingrate10', 'BasalforcingsFloatingiceMeltingRate10']
     144    'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingMeltingrate1',
     145    'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingMeltingrate2',
     146    'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingMeltingrate10']
    165147
    166148field_tolerances = [
    167     1e-11, 2e-11, 2e-11, 1e-11, 1e-9, 1e-10, 1e-10, 1e-10,
    168     2e-11, 1e-11, 1e-11, 9e-11, 2e-9, 1e-10, 1e-10, 1e-10,
    169     2e-6, 1e-6, 1e-6, 1e-6, 5e-6, 1e-6, 1e-6, 1e-6]
     149        1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,
     150        2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,
     151        2e-6,1e-6,1e-6,1e-6,5e-6,1e-6]
    170152field_values = [
    171153    md.results.TransientSolution[0].Vx,
     
    174156    md.results.TransientSolution[0].Thickness,
    175157    md.results.TransientSolution[0].MaskIceLevelset,
    176     md.results.TransientSolution[0].CalvingCalvingrate,
    177158    md.results.TransientSolution[0].CalvingMeltingrate,
    178     md.results.TransientSolution[0].BasalforcingsFloatingiceMeltingRate,
    179159    md.results.TransientSolution[19].Vx,
    180160    md.results.TransientSolution[19].Vy,
     
    182162    md.results.TransientSolution[19].Thickness,
    183163    md.results.TransientSolution[19].MaskIceLevelset,
    184     md.results.TransientSolution[19].CalvingCalvingrate,
    185164    md.results.TransientSolution[19].CalvingMeltingrate,
    186     md.results.TransientSolution[19].BasalforcingsFloatingiceMeltingRate,
    187165    md.results.TransientSolution[39].Vx,
    188166    md.results.TransientSolution[39].Vy,
     
    190168    md.results.TransientSolution[39].Thickness,
    191169    md.results.TransientSolution[39].MaskIceLevelset,
    192     md.results.TransientSolution[39].CalvingCalvingrate,
    193     md.results.TransientSolution[39].CalvingMeltingrate,
    194     md.results.TransientSolution[39].BasalforcingsFloatingiceMeltingRate]
     170    md.results.TransientSolution[39].CalvingMeltingrate]
Note: See TracChangeset for help on using the changeset viewer.