source: issm/trunk-jpl/src/jl/test501.jl@ 26714

Last change on this file since 26714 was 26714, checked in by Mathieu Morlighem, 3 years ago

CHG: more change on Pig, still not working, but close

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1#!/Applications/Julia-1.6.app/Contents/Resources/julia/bin/julia
2include("issm.jl")
3using .ISSM
4
5md = ISSM.model()
6md = ISSM.triangle(md,"../../test/Exp/Pig.exp",10000.)
7md = ISSM.setmask(md,"../../test/Exp/PigShelves.exp","../../test/Exp/PigIslands.exp")
8
9#Initial velocity and geometry
10x = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","x")
11y = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","y")
12vx_obs = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","vx_obs")
13vy_obs = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","vy_obs")
14index = Int.(ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","index"))
15surface = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","surface")
16thickness = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","thickness")
17bed = ISSM.archread(ISSM.issmdir()*"/test/Data/Pig.arch","bed")
18md.initialization.vx=ISSM.InterpFromMeshToMesh2d(index, x, y, vx_obs, md.mesh.x, md.mesh.y, 0.0)
19md.initialization.vy=ISSM.InterpFromMeshToMesh2d(index, x, y, vy_obs, md.mesh.x, md.mesh.y, 0.0)
20md.geometry.surface = ISSM.InterpFromMeshToMesh2d(index, x, y, surface, md.mesh.x, md.mesh.y, 0.0)
21md.geometry.thickness = ISSM.InterpFromMeshToMesh2d(index, x, y, thickness, md.mesh.x, md.mesh.y, 0.0)
22md.geometry.base=md.geometry.surface .- md.geometry.thickness
23md.geometry.bed =md.geometry.base
24pos = findall(md.mask.ocean_levelset.<0)
25md.geometry.bed[pos] = ISSM.InterpFromMeshToMesh2d(index, x, y, bed, md.mesh.x[pos], md.mesh.y[pos])
26
27md.materials.rheology_B=1.815730284801701e+08*ones(md.mesh.numberofvertices)
28md.materials.rheology_n=3*ones(md.mesh.numberofelements)
29md.friction.coefficient=50*ones(md.mesh.numberofvertices)
30
31md.stressbalance.restol=0.05
32md.stressbalance.reltol=1.0
33md.stressbalance.abstol=NaN
34
35#Boundary conditions
36pos = findall(vec(sum(Int64.(md.mask.ocean_levelset[md.mesh.elements].<0), dims=2)) .> 0.0)
37vertexonfloatingice=zeros(md.mesh.numberofvertices)
38vertexonfloatingice[md.mesh.elements[pos,:]] .= 1
39nodefront=(md.mesh.vertexonboundary .& (vertexonfloatingice.>0))
40md.mask.ice_levelset[findall(nodefront)] .= 0
41
42md.stressbalance.spcvx = NaN*ones(md.mesh.numberofvertices)
43md.stressbalance.spcvy = NaN*ones(md.mesh.numberofvertices)
44segmentsfront=md.mask.ice_levelset[md.mesh.segments[:,1:2]]==0
45segments = findall(vec(sum(Int64.(md.mask.ice_levelset[md.mesh.segments[:,1:2]].==0), dims=2)) .!=2)
46pos=md.mesh.segments[segments,1:2]
47md.stressbalance.spcvx[pos] .= 0.0
48md.stressbalance.spcvy[pos] .= 0.0
49
50md=ISSM.solve(md,"Stressbalance")
Note: See TracBrowser for help on using the repository browser.