]> Creatis software - CreaPhase.git/blobdiff - octave_packages/secs2d-0.0.8/Utilities/Usmoothguess.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / secs2d-0.0.8 / Utilities / Usmoothguess.m
diff --git a/octave_packages/secs2d-0.0.8/Utilities/Usmoothguess.m b/octave_packages/secs2d-0.0.8/Utilities/Usmoothguess.m
new file mode 100644 (file)
index 0000000..cbe638f
--- /dev/null
@@ -0,0 +1,20 @@
+function guess = Usmoothguess(mesh,new,old,Dsides);
+
+% guess = Usmoothguess(mesh,new,old,Dsides);
+
+  if ~isfield("mesh","wjacdet")
+    mesh = Umeshproperties(mesh);
+  end
+
+  Nelements = columns(mesh.t);
+  Nnodes = columns(mesh.p);
+
+  Dnodes = Unodesonside(mesh,Dsides);
+  varnodes = setdiff([1:Nnodes]',Dnodes);
+  guess = new;
+
+  A = Ucomplap(mesh,ones(Nelements,1));
+  Aie = A(varnodes,Dnodes);
+  Aii = A(varnodes,varnodes);
+
+  guess(varnodes) = Aii\(-Aie*(new(Dnodes)-old(Dnodes))+Aii*old(varnodes));