Changeset 26472


Ignore:
Timestamp:
10/05/21 12:37:05 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: working on plotmodel

Location:
issm/trunk-jpl/src/jl
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/jl/exp.jl

    r26467 r26472  
    9494                        #read Info
    9595                        A = readline(f); line += 1
    96                         if A[1:20]!="# Points Count Value"
     96                        if A[1:14]!="# Points Count"
    9797                                println("line $(line): $(A)")
    9898                                error("Unexpected exp file formatting")
  • issm/trunk-jpl/src/jl/issm.jl

    r26471 r26472  
    3434        return Geometry( Vector{Float64}(undef,0), Vector{Float64}(undef,0), Vector{Float64}(undef,0), Vector{Float64}(undef,0))
    3535end# }}}
     36mutable struct Mask
     37        ocean_levelset::Vector{Float64}
     38        ice_levelset::Vector{Float64}
     39end
     40function Mask() #{{{
     41        return Mask( Vector{Float64}(undef,0), Vector{Float64}(undef,0))
     42end# }}}
    3643
    3744mutable struct model
    3845        mesh::AbstractMesh
    3946        geometry::Geometry
     47        mask::Mask
    4048end
    4149function model() #{{{
    42         return model(Mesh2dTriangle(),Geometry())
     50        return model( Mesh2dTriangle(), Geometry(), Mask())
    4351end#}}}
    4452function Base.show(io::IO, md::model)# {{{
     
    4957        @printf "%19s: %-22s -- %s\n" "mesh" typeof(md.mesh) "mesh properties"
    5058        @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"
    5160
    5261end# }}}
  • issm/trunk-jpl/src/jl/triangle.jl

    r26471 r26472  
    1 #see https://github.com/JuliaGeometry/Triangulate.jl/blob/master/src/plot.jl
    2 #see https://github.com/JuliaGeometry/MeshViz.jl/blob/master/src/simplemesh.jl
    31
    42#Class Triangle's triangulateio
     
    5250end# }}}
    5351
    54 using Printf, PyPlot
    55 using GLMakie
     52using Printf #needed for sprintf
     53include("issm.jl")
     54include("exp.jl")
     55
    5656"""
    5757TRIANGLE - create model mesh using the triangle package
     
    7070 - md=triangle(md,'DomainOutline.exp','Rifts.exp',1500);
    7171"""
    72 function triangle(domainname::String,resolution::Float64) #{{{
     72function triangle(md::model,domainname::String,resolution::Float64) #{{{
    7373
    7474        #read input file
     
    161161
    162162        #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
    167171
    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
    181173end#}}}
Note: See TracChangeset for help on using the changeset viewer.