Changeset 26472
- Timestamp:
- 10/05/21 12:37:05 (3 years ago)
- Location:
- issm/trunk-jpl/src/jl
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/jl/exp.jl
r26467 r26472 94 94 #read Info 95 95 A = readline(f); line += 1 96 if A[1: 20]!="# Points Count Value"96 if A[1:14]!="# Points Count" 97 97 println("line $(line): $(A)") 98 98 error("Unexpected exp file formatting") -
issm/trunk-jpl/src/jl/issm.jl
r26471 r26472 34 34 return Geometry( Vector{Float64}(undef,0), Vector{Float64}(undef,0), Vector{Float64}(undef,0), Vector{Float64}(undef,0)) 35 35 end# }}} 36 mutable struct Mask 37 ocean_levelset::Vector{Float64} 38 ice_levelset::Vector{Float64} 39 end 40 function Mask() #{{{ 41 return Mask( Vector{Float64}(undef,0), Vector{Float64}(undef,0)) 42 end# }}} 36 43 37 44 mutable struct model 38 45 mesh::AbstractMesh 39 46 geometry::Geometry 47 mask::Mask 40 48 end 41 49 function model() #{{{ 42 return model( Mesh2dTriangle(),Geometry())50 return model( Mesh2dTriangle(), Geometry(), Mask()) 43 51 end#}}} 44 52 function Base.show(io::IO, md::model)# {{{ … … 49 57 @printf "%19s: %-22s -- %s\n" "mesh" typeof(md.mesh) "mesh properties" 50 58 @printf "%19s: %-22s -- %s\n" "geometry" typeof(md.geometry) "surface elevation, bedrock topography, ice thickness,..." 59 @printf "%19s: %-22s -- %s\n" "mask" typeof(md.mask) "defines grounded and floating regions" 51 60 52 61 end# }}} -
issm/trunk-jpl/src/jl/triangle.jl
r26471 r26472 1 #see https://github.com/JuliaGeometry/Triangulate.jl/blob/master/src/plot.jl2 #see https://github.com/JuliaGeometry/MeshViz.jl/blob/master/src/simplemesh.jl3 1 4 2 #Class Triangle's triangulateio … … 52 50 end# }}} 53 51 54 using Printf, PyPlot 55 using GLMakie 52 using Printf #needed for sprintf 53 include("issm.jl") 54 include("exp.jl") 55 56 56 """ 57 57 TRIANGLE - create model mesh using the triangle package … … 70 70 - md=triangle(md,'DomainOutline.exp','Rifts.exp',1500); 71 71 """ 72 function triangle( domainname::String,resolution::Float64) #{{{72 function triangle(md::model,domainname::String,resolution::Float64) #{{{ 73 73 74 74 #read input file … … 161 161 162 162 #post process output 163 numberofvertices = ctio_out.numberofpoints 164 numberofelements = ctio_out.numberoftriangles 165 points = convert(Array{Cdouble,2}, Base.unsafe_wrap(Array, ctio_out.pointlist, (2,Int(ctio_out.numberofpoints)), own=true))' 166 elements = convert(Array{Cint,2}, Base.unsafe_wrap(Array, ctio_out.trianglelist, (3,Int(ctio_out.numberoftriangles)), own=true))' .+1 163 points = convert(Array{Cdouble,2}, Base.unsafe_wrap(Array, ctio_out.pointlist, (2,Int(ctio_out.numberofpoints)), own=true))' 164 triangles = convert(Array{Cint,2}, Base.unsafe_wrap(Array, ctio_out.trianglelist, (3,Int(ctio_out.numberoftriangles)), own=true))' .+1 165 md.mesh = Mesh2dTriangle() 166 md.mesh.numberofvertices = ctio_out.numberofpoints 167 md.mesh.numberofelements = ctio_out.numberoftriangles 168 md.mesh.x = points[:,1] 169 md.mesh.y = points[:,2] 170 md.mesh.elements = triangles 167 171 168 #plot 169 clf() 170 if false 171 poly(points, elements, strokewidth=1, shading=false,transparency=true) 172 else 173 fig = matplotlib[:pyplot][:figure]("2D Mesh Plot", figsize = (10,10)) 174 ax = matplotlib[:pyplot][:axes]() 175 ax[:set_aspect]("equal") 176 tri = ax[:triplot](points[:,1], points[:,2], elements.-1) 177 setp(tri, linestyle = "-", linewidth = 1.5, marker = "None", markersize = 5., color = "blue") 178 fig[:canvas][:draw]() 179 end 180 172 return md 181 173 end#}}}
Note:
See TracChangeset
for help on using the changeset viewer.