Changeset 25183
- Timestamp:
- 06/29/20 16:10:31 (5 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/boundaryconditions/getlovenumbers.py
r25166 r25183 10069 10069 elif frame == 'CF': #from Blewitt, 2003, JGR 10070 10070 if type == 'loadingverticaldisplacement': 10071 series[ 0] = -0.26910071 series[1] = -0.269 10072 10072 elif type == 'loadinggravitationalpotential': 10073 series[ 0] = 0.02110073 series[1] = 0.021 10074 10074 elif type == 'loadinghorizontaldisplacement': 10075 series[ 0] = 0.13410075 series[1] = 0.134 10076 10076 else: 10077 10077 raise Exception("love_numbers error message: unknown reference frame: {}".format(frame)) -
issm/trunk-jpl/src/m/classes/lovenumbers.py
r25166 r25183 78 78 s += '{}\n'.format(fielddisplay(self, 'tk', 'tidal load Love number (deg 2)')) 79 79 s += '{}\n'.format(fielddisplay(self, 'tk2secular', 'secular fluid Love number')) 80 81 return s 80 82 #}}} 81 83 -
issm/trunk-jpl/test/NightlyRun/test2111.m
r25147 r25183 3 3 4 4 %mesh ais: {{{ 5 6 5 md=model(); 6 md=triangle(md,'../Exp/Ais.exp',200000); % max element size 7 7 % }}} 8 8 %define load: {{{ 9 md.esa.deltathickness=zeros(md.mesh.numberofelements,1); 10 disc_radius=500; % km 11 index=md.mesh.elements; 12 x_element=mean(md.mesh.x(index),2)-1.0e6; 13 y_element=mean(md.mesh.y(index),2)-1.0e6; 14 rad_dist=sqrt(x_element.^2+y_element.^2)/1000; % radial distance in km 15 md.esa.deltathickness(rad_dist<=disc_radius)=-1; % 1 m water withdrawl 9 md.esa.deltathickness=zeros(md.mesh.numberofelements,1); 10 disc_radius=500; % km 11 index=md.mesh.elements; 12 x_element=mean(md.mesh.x(index),2)-1.0e6; 13 y_element=mean(md.mesh.y(index),2)-1.0e6; 14 rad_dist=sqrt(x_element.^2+y_element.^2)/1000; % radial distance in km 15 pos=find(rad_dist<=disc_radius); 16 md.esa.deltathickness(pos)=-1; % 1 m water withdrawl 16 17 % }}} 17 18 %read in love numbers:{{{ … … 19 20 % }}} 20 21 %mask: {{{ 21 %make sure wherever there is an ice load, that the mask is set to ice: 22 md.mask.ice_levelset=ones(md.mesh.numberofvertices,1); 23 pos=find(md.esa.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; 22 %make sure wherever there is an ice load, that the mask is set to ice: 23 md.mask.ice_levelset=ones(md.mesh.numberofvertices,1); 24 pos=find(md.esa.deltathickness); 25 md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; 24 26 25 %is ice grounded? 26 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1); 27 pos=find(md.mask.ice_levelset<=0); md.mask.ocean_levelset(pos)=1; 27 %is ice grounded? 28 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1); 29 pos=find(md.mask.ice_levelset<=0); 30 md.mask.ocean_levelset(pos)=1; 28 31 % }}} 29 32 %geometry: {{{ 30 31 32 33 34 33 di=md.materials.rho_ice/md.materials.rho_water; 34 md.geometry.thickness=ones(md.mesh.numberofvertices,1); 35 md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1); 36 md.geometry.base=md.geometry.surface-md.geometry.thickness; 37 md.geometry.bed=md.geometry.base; 35 38 % }}} 36 39 %materials: {{{ 37 38 39 40 md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1); 41 md.materials.rheology_B=paterson(md.initialization.temperature); 42 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 40 43 % }}} 41 44 %additional parameters, miscellaneous: {{{ 42 43 44 45 md.miscellaneous.name='test2111'; 46 md.esa.degacc=0.01; 47 md.esa.hemisphere = -1; 45 48 % }}} 46 49 -
issm/trunk-jpl/test/NightlyRun/test2111.py
r25158 r25183 17 17 # }}} 18 18 #define load: {{{ 19 md.esa.deltathickness = np.zeros((md.mesh.numberofelements, ))19 md.esa.deltathickness = np.zeros((md.mesh.numberofelements, 1)) 20 20 disc_radius = 500 # km 21 21 index = md.mesh.elements 22 x_element = np.mean(md.mesh.x[index - 1],1) - 1.0e623 y_element = np.mean(md.mesh.y[index - 1],1) - 1.0e622 x_element = md.mesh.x[index - 1].mean(axis=1) - 1.0e6 23 y_element = md.mesh.y[index - 1].mean(axis=1) - 1.0e6 24 24 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 25 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 25 pos = np.where(rad_dist <= disc_radius)[0] 26 md.esa.deltathickness[pos] = -1 # 1 m water withdrawl 26 27 # }}} 27 28 #love numbers: {{{ … … 30 31 #mask: {{{ 31 32 #make sure wherever there is an ice load, that the mask is set to ice: 32 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, ))33 pos = np.where(md.esa.deltathickness) 33 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, 1)) 34 pos = np.where(md.esa.deltathickness)[0] 34 35 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 35 36 36 37 #is ice grounded? 37 md.mask.ocean_levelset = -np.ones((md.mesh.numberofvertices, ))38 pos = np.where(md.mask.ice_levelset <= 0) 38 md.mask.ocean_levelset = -np.ones((md.mesh.numberofvertices, 1)) 39 pos = np.where(md.mask.ice_levelset <= 0)[0] 39 40 md.mask.ocean_levelset[pos] = 1 40 41 # }}} 41 42 #geometry: {{{ 42 43 di = md.materials.rho_ice / md.materials.rho_water 43 md.geometry.thickness = np.ones((md.mesh.numberofvertices, ))44 md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, ))44 md.geometry.thickness = np.ones((md.mesh.numberofvertices, 1)) 45 md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, 1)) 45 46 md.geometry.base = md.geometry.surface - md.geometry.thickness 46 47 md.geometry.bed = md.geometry.base 47 48 # }}} 48 49 #materials: {{{ 49 md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, ))50 md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, 1)) 50 51 md.materials.rheology_B = paterson(md.initialization.temperature) 51 md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, ))52 md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, 1)) 52 53 # }}} 53 54 #additional parameters, miscellaneous: {{{ -
issm/trunk-jpl/test/NightlyRun/test2112.m
r25147 r25183 3 3 4 4 %mesh ais: {{{ 5 6 5 md=model(); 6 md=triangle(md,'../Exp/Ais.exp',100000); % max element size 7 7 % }}} 8 8 %define load: {{{ 9 md.esa.deltathickness=zeros(md.mesh.numberofelements,1); 10 disc_radius=500; % km 11 index=md.mesh.elements; 12 x_element=mean(md.mesh.x(index),2); 13 y_element=mean(md.mesh.y(index),2); 14 rad_dist=sqrt(x_element.^2+y_element.^2)/1000; % radial distance in km 15 md.esa.deltathickness(rad_dist<=disc_radius)=-1; % 1 m water withdrawl 9 md.esa.deltathickness=zeros(md.mesh.numberofelements,1); 10 disc_radius=500; % km 11 index=md.mesh.elements; 12 x_element=mean(md.mesh.x(index),2); 13 y_element=mean(md.mesh.y(index),2); 14 rad_dist=sqrt(x_element.^2+y_element.^2)/1000; % radial distance in km 15 pos=find(rad_dist<=disc_radius); 16 md.esa.deltathickness(pos)=-1; % 1 m water withdrawl 16 17 % }}} 17 18 %read in love numbers:{{{ … … 19 20 % }}} 20 21 %mask: {{{ 21 22 23 22 %make sure wherever there is an ice load, that the mask is set to ice: 23 md.mask.ice_levelset=ones(md.mesh.numberofvertices,1); 24 pos=find(md.esa.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; 24 25 25 26 27 26 %is ice grounded? 27 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1); 28 pos=find(md.mask.ice_levelset<=0); md.mask.ocean_levelset(pos)=1; 28 29 % }}} 29 30 %geometry: {{{ 30 31 32 33 34 31 di=md.materials.rho_ice/md.materials.rho_water; 32 md.geometry.thickness=ones(md.mesh.numberofvertices,1); 33 md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1); 34 md.geometry.base=md.geometry.surface-md.geometry.thickness; 35 md.geometry.bed=md.geometry.base; 35 36 % }}} 36 37 %materials: {{{ 37 38 39 38 md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1); 39 md.materials.rheology_B=paterson(md.initialization.temperature); 40 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 40 41 % }}} 41 42 %additional parameters, miscellaneous: {{{ 42 43 44 43 md.miscellaneous.name='test2112'; 44 md.esa.degacc=0.01; 45 md.esa.hemisphere = -1; 45 46 % }}} 46 47 -
issm/trunk-jpl/test/NightlyRun/test2112.py
r25158 r25183 20 20 disc_radius = 500 # km 21 21 index = md.mesh.elements 22 x_element = np.mean(md.mesh.x[index - 1],1)23 y_element = np.mean(md.mesh.y[index - 1],1)22 x_element = md.mesh.x[index - 1].mean(axis=1) 23 y_element = md.mesh.y[index - 1].mean(axis=1) 24 24 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 25 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 25 pos = np.where(rad_dist <= disc_radius)[0] 26 md.esa.deltathickness[pos] = -1 # 1 m water withdrawl 26 27 # }}} 27 28 #love numbers: {{{ … … 30 31 #mask: {{{ 31 32 #make sure wherever there is an ice load, that the mask is set to ice: 32 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, ))33 pos = np. where(md.esa.deltathickness)33 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, 1)) 34 pos = np.nonzero(md.esa.deltathickness)[0] 34 35 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 35 36 36 37 #is ice grounded? 37 md.mask.ocean_levelset = -np.ones((md.mesh.numberofvertices, ))38 pos = np.where(md.mask.ice_levelset <= 0) 38 md.mask.ocean_levelset = -np.ones((md.mesh.numberofvertices, 1)) 39 pos = np.where(md.mask.ice_levelset <= 0)[0] 39 40 md.mask.ocean_levelset[pos] = 1 40 41 # }}} 41 42 #geometry: {{{ 42 43 di = md.materials.rho_ice / md.materials.rho_water 43 md.geometry.thickness = np.ones((md.mesh.numberofvertices, ))44 md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, ))44 md.geometry.thickness = np.ones((md.mesh.numberofvertices, 1)) 45 md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, 1)) 45 46 md.geometry.base = md.geometry.surface - md.geometry.thickness 46 47 md.geometry.bed = md.geometry.base 47 48 # }}} 48 49 #materials: {{{ 49 md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, ))50 md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, 1)) 50 51 md.materials.rheology_B = paterson(md.initialization.temperature) 51 md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, ))52 md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, 1)) 52 53 # }}} 53 54 #additional parameters, miscellaneous: {{{ -
issm/trunk-jpl/test/NightlyRun/test2113.m
r25147 r25183 4 4 5 5 %mesh ais: {{{ 6 7 6 md=model(); 7 md=triangle(md,'../Exp/Ais.exp',200000); % max element size 8 8 % }}} 9 9 %define load: {{{ 10 md.esa.deltathickness=zeros(md.mesh.numberofelements,1); 11 disc_radius=500; % km 12 index=md.mesh.elements; 13 x_element=mean(md.mesh.x(index),2)-1.0e6; 14 y_element=mean(md.mesh.y(index),2)+1.0e6; 15 rad_dist=sqrt(x_element.^2+y_element.^2)/1000; % radial distance in km 16 md.esa.deltathickness(rad_dist<=disc_radius)=-1; % 1 m water withdrawl 10 md.esa.deltathickness=zeros(md.mesh.numberofelements,1); 11 disc_radius=500; % km 12 index=md.mesh.elements; 13 x_element=mean(md.mesh.x(index),2)-1.0e6; 14 y_element=mean(md.mesh.y(index),2)+1.0e6; 15 rad_dist=sqrt(x_element.^2+y_element.^2)/1000; % radial distance in km 16 pos=find(rad_dist<=disc_radius); 17 md.esa.deltathickness(pos)=-1; % 1 m water withdrawl 17 18 % }}} 18 19 %read in love numbers:{{{ … … 20 21 % }}} 21 22 %mask: {{{ 22 23 24 23 %make sure wherever there is an ice load, that the mask is set to ice: 24 md.mask.ice_levelset=ones(md.mesh.numberofvertices,1); 25 pos=find(md.esa.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; 25 26 26 27 28 27 %is ice grounded? 28 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1); 29 pos=find(md.mask.ice_levelset<=0); md.mask.ocean_levelset(pos)=1; 29 30 % }}} 30 31 %geometry: {{{ 31 32 33 34 35 32 di=md.materials.rho_ice/md.materials.rho_water; 33 md.geometry.thickness=ones(md.mesh.numberofvertices,1); 34 md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1); 35 md.geometry.base=md.geometry.surface-md.geometry.thickness; 36 md.geometry.bed=md.geometry.base; 36 37 % }}} 37 38 %materials: {{{ 38 39 40 39 md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1); 40 md.materials.rheology_B=paterson(md.initialization.temperature); 41 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 41 42 % }}} 42 43 %additional parameters, miscellaneous: {{{ 43 44 45 44 md.miscellaneous.name='test2113'; 45 md.esa.degacc=0.01; 46 md.esa.hemisphere = 1; % AIS is placed in Northern Hemisphere 46 47 % }}} 47 48 -
issm/trunk-jpl/test/NightlyRun/test2113.py
r25158 r25183 18 18 # }}} 19 19 #define load: {{{ 20 md.esa.deltathickness = np.zeros((md.mesh.numberofelements, ))20 md.esa.deltathickness = np.zeros((md.mesh.numberofelements, 1)) 21 21 disc_radius = 500 # km 22 22 index = md.mesh.elements … … 24 24 y_element = np.mean(md.mesh.y[index - 1], 1) + 1.0e6 25 25 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 26 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 26 pos = np.where(rad_dist <= disc_radius)[0] 27 md.esa.deltathickness[pos] = -1 # 1 m water withdrawl 27 28 # }}} 28 29 #love numbers: {{{ … … 31 32 #mask: {{{ 32 33 #make sure wherever there is an ice load, that the mask is set to ice: 33 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, ))34 pos = np. where(md.esa.deltathickness)34 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, 1)) 35 pos = np.nonzero(md.esa.deltathickness)[0] 35 36 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 36 37 37 38 #is ice grounded? 38 md.mask.ocean_levelset = -np.ones((md.mesh.numberofvertices, ))39 pos = np.where(md.mask.ice_levelset <= 0) 39 md.mask.ocean_levelset = -np.ones((md.mesh.numberofvertices, 1)) 40 pos = np.where(md.mask.ice_levelset <= 0)[0] 40 41 md.mask.ocean_levelset[pos] = 1 41 42 # }}} 42 43 #geometry: {{{ 43 44 di = md.materials.rho_ice / md.materials.rho_water 44 md.geometry.thickness = np.ones((md.mesh.numberofvertices, ))45 md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, ))45 md.geometry.thickness = np.ones((md.mesh.numberofvertices, 1)) 46 md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, 1)) 46 47 md.geometry.base = md.geometry.surface - md.geometry.thickness 47 48 md.geometry.bed = md.geometry.base 48 49 # }}} 49 50 #materials: {{{ 50 md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, ))51 md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, 1)) 51 52 md.materials.rheology_B = paterson(md.initialization.temperature) 52 md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, ))53 md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, 1)) 53 54 # }}} 54 55 #additional parameters, miscellaneous: {{{
Note:
See TracChangeset
for help on using the changeset viewer.