Changeset 26716
- Timestamp:
- 12/08/21 06:09:27 (3 years ago)
- Location:
- issm/trunk-jpl/src/jl
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/jl/md/classes.jl
r26715 r26716 141 141 142 142 #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 179 154 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 181 182 end 182 183 end -
issm/trunk-jpl/src/jl/solve/analyses/stressbalanceanalysis.jl
r26711 r26716 177 177 178 178 if(IsIcefront(element)) 179 A = zeros(6)180 179 181 180 #Get additional parameters and inputs … … 187 186 GetIcefrontCoordinates!(element, xyz_list_front, xyz_list, MaskIceLevelsetEnum) 188 187 nx, ny = NormalSection(element, xyz_list_front) 189 #println("nx ",nx," ny:",ny)190 188 191 189 gauss = GaussTria(element, xyz_list, xyz_list_front, 3) … … 202 200 203 201 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])205 202 pe.values[2*i-1] += gauss.weights[ig]*Jdet*term*nx*basis[i] 206 203 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]209 204 end 210 205 end -
issm/trunk-jpl/src/jl/test101.jl
r26713 r26716 27 27 vy = ISSM.archread(ISSM.issmdir()*"/test/Data/SquareShelfConstrained.arch","vy") 28 28 index = 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)29 md.initialization.vx=ISSM.InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y,NaN) 30 md.initialization.vy=ISSM.InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y,NaN) 31 31 32 32 md.materials.rheology_B=1.815730284801701e+08*ones(md.mesh.numberofvertices)
Note:
See TracChangeset
for help on using the changeset viewer.