Changeset 26716


Ignore:
Timestamp:
12/08/21 06:09:27 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: as usual

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

Legend:

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

    r26715 r26716  
    141141
    142142        #Loop over all possible fields
    143         for name1 in fieldnames(model)
    144                 if haskey(matmd, String(name1))
    145                         mdfield  = getfield(md,name1)
    146                         matfield = matmd[String(name1)]
    147                         for name2 in fieldnames(typeof(mdfield))
    148                                 if haskey(matfield, String(name2))
    149                                         println("recovering md.",name1,".",name2)
    150                                         value_matlab = matfield[String(name2)]
    151                                         value_julia  = getfield(mdfield, name2)
    152 
    153                                         if typeof(value_matlab)==typeof(value_julia)
    154                                                 #setfield!(mdfield, name2, convert(typeof(getfield(mdfield, name2)), matfield[String(name2)]))
    155                                                 setfield!(mdfield, name2, value_matlab)
    156 
    157                                         elseif typeof(value_matlab)==Float64 && typeof(value_julia)==Int64
    158                                                 setfield!(mdfield, name2, Int64(value_matlab))
    159 
    160                                         elseif typeof(value_matlab)==Matrix{Float64} && typeof(value_julia)==Vector{Float64}
    161                                                 if(size(value_matlab,2)!=1) error("only one column expected") end
    162                                                 setfield!(mdfield, name2, value_matlab[:,1])
    163 
    164                                         elseif typeof(value_matlab)==Matrix{Float64} && typeof(value_julia)==Matrix{Int64}
    165                                                 matrix = Matrix{Int64}(undef,size(value_matlab))
    166                                                 for i in 1:length(value_matlab) matrix[i] = Int64(value_matlab[i]) end
    167                                                 setfield!(mdfield, name2, matrix)
    168 
    169                                         elseif typeof(value_matlab)==Matrix{Float64} && typeof(value_julia)==Vector{Bool}
    170                                                 if(size(value_matlab,2)!=1) error("only one column expected") end
    171                                                 vector = Vector{Bool}(undef,size(value_matlab,1))
    172                                                 for i in 1:length(vector) vector[i] = Bool(value_matlab[i]) end
    173                                                 setfield!(mdfield, name2, vector)
    174 
    175                                         else
    176                                                 error("Don't know how to convert ",typeof(value_matlab)," to ",typeof(value_julia))
    177                                         end
    178                                 end
     143        for name1 in keys(matmd)
     144                if !(Symbol(name1) in fieldnames(model))
     145                        println("could not recover md.",name1)
     146                        continue
     147                end
     148                mdfield  = getfield(md,Symbol(name1))
     149                matfield = matmd[name1]
     150                for name2 in keys(matfield)
     151                        if !(Symbol(name2) in fieldnames(typeof(mdfield)))
     152                                println("could not recover md.",name1,".",name2)
     153                                continue
    179154                        end
    180                         #setfield!(md, name1, mdfield)
     155                        value_matlab = matfield[name2]
     156                        value_julia  = getfield(mdfield, Symbol(name2))
     157
     158                        if typeof(value_matlab)==typeof(value_julia)
     159                                setfield!(mdfield, Symbol(name2), value_matlab)
     160
     161                        elseif typeof(value_matlab)==Float64 && typeof(value_julia)==Int64
     162                                setfield!(mdfield, Symbol(name2), Int64(value_matlab))
     163
     164                        elseif typeof(value_matlab)==Matrix{Float64} && typeof(value_julia)==Vector{Float64}
     165                                if(size(value_matlab,2)!=1) error("only one column expected") end
     166                                setfield!(mdfield, Symbol(name2), value_matlab[:,1])
     167
     168                        elseif typeof(value_matlab)==Matrix{Float64} && typeof(value_julia)==Matrix{Int64}
     169                                matrix = Matrix{Int64}(undef,size(value_matlab))
     170                                for i in 1:length(value_matlab) matrix[i] = Int64(value_matlab[i]) end
     171                                setfield!(mdfield, Symbol(name2), matrix)
     172
     173                        elseif typeof(value_matlab)==Matrix{Float64} && typeof(value_julia)==Vector{Bool}
     174                                if(size(value_matlab,2)!=1) error("only one column expected") end
     175                                vector = Vector{Bool}(undef,size(value_matlab,1))
     176                                for i in 1:length(vector) vector[i] = Bool(value_matlab[i]) end
     177                                setfield!(mdfield, Symbol(name2), vector)
     178
     179                        else
     180                                error("Don't know how to convert ",typeof(value_matlab)," to ",typeof(value_julia))
     181                        end
    181182                end
    182183        end
  • issm/trunk-jpl/src/jl/solve/analyses/stressbalanceanalysis.jl

    r26711 r26716  
    177177
    178178        if(IsIcefront(element))
    179                 A = zeros(6)
    180179
    181180                #Get additional parameters and inputs
     
    187186                GetIcefrontCoordinates!(element, xyz_list_front, xyz_list, MaskIceLevelsetEnum)
    188187                nx, ny = NormalSection(element, xyz_list_front)
    189                 #println("nx ",nx," ny:",ny)
    190188
    191189                gauss = GaussTria(element, xyz_list, xyz_list_front, 3)
     
    202200
    203201                        for i in 1:numnodes
    204                                 #println("1: ",gauss.weights[ig]*Jdet*term*nx*basis[i]," 2: ",gauss.weights[ig]*Jdet*term*ny*basis[i])
    205202                                pe.values[2*i-1] += gauss.weights[ig]*Jdet*term*nx*basis[i]
    206203                                pe.values[2*i  ] += gauss.weights[ig]*Jdet*term*ny*basis[i]
    207                                 A[2*i-1] += gauss.weights[ig]*Jdet*term*nx*basis[i]
    208                                 A[2*i  ] += gauss.weights[ig]*Jdet*term*ny*basis[i]
    209204                        end
    210205                end
  • issm/trunk-jpl/src/jl/test101.jl

    r26713 r26716  
    2727vy    = ISSM.archread(ISSM.issmdir()*"/test/Data/SquareShelfConstrained.arch","vy")
    2828index = Int.(ISSM.archread(ISSM.issmdir()*"/test/Data/SquareShelfConstrained.arch","index"))
    29 md.initialization.vx=ISSM.InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y,0.0)
    30 md.initialization.vy=ISSM.InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y,0.0)
     29md.initialization.vx=ISSM.InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y,NaN)
     30md.initialization.vy=ISSM.InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y,NaN)
    3131
    3232md.materials.rheology_B=1.815730284801701e+08*ones(md.mesh.numberofvertices)
Note: See TracChangeset for help on using the changeset viewer.