Changeset 26698
- Timestamp:
- 12/02/21 10:45:36 (3 years ago)
- Location:
- issm/trunk-jpl/src/jl/solve
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/jl/solve/modules.jl
r26686 r26698 161 161 162 162 end#}}} 163 function Mergesolutionfromftogx(ug::IssmVector, uf::IssmVector, ys::IssmVector, nodes::Vector{Node}) #{{{ 164 165 #Go through elements and plug in solution 166 for i=1:length(nodes) 167 VecMerge(nodes[i],ug,uf.vector,ys.vector) 168 end 169 170 return ug 171 172 end#}}} 163 173 function Reduceloadx!(pf::IssmVector, Kfs::IssmMatrix, ys::IssmVector) #{{{ 164 174 -
issm/trunk-jpl/src/jl/solve/nodes.jl
r26686 r26698 145 145 146 146 end# }}} 147 function VecMerge(node::Node,ug::IssmVector,uf::Vector{Float64},ys::Vector{Float64}) #{{{ 148 149 fsize = FSize(node) 150 ssize = SSize(node) 151 152 if fsize>0 153 indices = Vector{Int64}(undef,fsize) 154 values = Vector{Float64}(undef,fsize) 155 156 count = 1 157 for i=1:node.gsize 158 if node.fdoflist[i]!=-1 159 indices[count] = node.gdoflist[i] 160 values[count] = uf[node.fdoflist[i]] 161 count += 1 162 end 163 end 164 SetValues!(ug,fsize,indices,values) 165 end 166 167 if ssize>0 168 indices = Vector{Int64}(undef,ssize) 169 values = Vector{Float64}(undef,ssize) 170 171 count = 1 172 for i=1:node.gsize 173 if node.sdoflist[i]!=-1 174 indices[count] = node.gdoflist[i] 175 values[count] = ys[node.sdoflist[i]] 176 count += 1 177 end 178 end 179 SetValues!(ug,ssize,indices,values) 180 end 181 182 end# }}} 147 183 function SSize(node::Node) #{{{ 148 184 149 185 ssize = 0 186 187 for i=1:node.gsize 188 if node.sdoflist[i]!=-1 189 ssize+=1 190 end 191 end 192 193 return ssize 194 195 end# }}} 196 function FSize(node::Node) #{{{ 197 198 fsize = 0 150 199 151 200 for i=1:node.gsize 152 201 if node.fdoflist[i]!=-1 153 ssize+=1154 end 155 end 156 157 return ssize202 fsize+=1 203 end 204 end 205 206 return fsize 158 207 159 208 end# }}} -
issm/trunk-jpl/src/jl/solve/solutionsequences.jl
r26686 r26698 26 26 uf = Solverx(Kff, pf, old_uf) 27 27 28 print(uf) 28 #Merge uf with ys 29 Mergesolutionfromftogx(ug, uf, ys, femmodel.nodes) 30 31 print(ug) 29 32 error("compare with ISSM...") 30 33 -
issm/trunk-jpl/src/jl/solve/toolkits.jl
r26686 r26698 73 73 74 74 x = IssmVector(GetSize(xold)) 75 x.vector = ( b.vector\A.matrix)' #not sure why we need to transpose... that's a mystery!75 x.vector = (A.matrix\b.vector) 76 76 77 77 return x
Note:
See TracChangeset
for help on using the changeset viewer.