X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=octave_packages%2Fsecs2d-0.0.8%2FThDDGOX%2FThDDGOXgummelmap.m;fp=octave_packages%2Fsecs2d-0.0.8%2FThDDGOX%2FThDDGOXgummelmap.m;h=4e0ff7d40d883ce38ec8e6cc53d7604157529d70;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hp=0000000000000000000000000000000000000000;hpb=1705066eceaaea976f010f669ce8e972f3734b05;p=CreaPhase.git diff --git a/octave_packages/secs2d-0.0.8/ThDDGOX/ThDDGOXgummelmap.m b/octave_packages/secs2d-0.0.8/ThDDGOX/ThDDGOXgummelmap.m new file mode 100644 index 0000000..4e0ff7d --- /dev/null +++ b/octave_packages/secs2d-0.0.8/ThDDGOX/ThDDGOXgummelmap.m @@ -0,0 +1,69 @@ +function [odata,ith,res] = ThDDGOXgummelmap (imesh,Dsides,... + Simesh,Sinodes,Sielements,SiDsides,... + idata,tol,maxit,ptol,pmaxit,thtol,thmaxit,... + eltol,elmaxit,verbose) + + ## [odata,it,res] = ThDDGOXgummelmap (imesh,Dsides,... + ## Simesh,Sinodes,Sielements,SiDsides,... + ## idata,tol,maxit,ptol,pmaxit,thtol,thmaxit,... + ## eltol,elmaxit,verbose) + + clear DDGOXNLPOISSON_LAP DDGOXNLPOISSON_MASS DDGOXNLPOISSON_RHS DDG_RHS DDG_MASS + global DDGOXNLPOISSON_LAP DDGOXNLPOISSON_MASS DDGOXNLPOISSON_RHS DDG_RHS DDG_MASS + + eletdata = idata; + thermdata = idata; + nrm = 1; + eletnrm = []; + thermnrm = []; + + for ith=1:maxit + + eletdata.Tl = thermdata.Tl; + eletdata.Tn = thermdata.Tn; + eletdata.Tp = thermdata.Tp; + + if (verbose>=1) + fprintf(1,'\n***\n***\tupdating potentials\n***\n'); + end + + [eletdata,innrm1]=ThDDGOXeletiteration(imesh,Dsides,... + Simesh,Sinodes,Sielements,SiDsides,... + eletdata,eltol,elmaxit,ptol,pmaxit,verbose); + eletnrm = [eletnrm,innrm1]; + + thermdata.n = eletdata.n; + thermdata.p = eletdata.p; + thermdata.V = eletdata.V; + + if (verbose>=1) + fprintf(1,'\n***\n***\tupdating temperatures\n***\n'); + end + + [thermdata,innrm] = ThDDGOXthermaliteration(imesh,Dsides,... + Simesh,Sinodes,Sielements,SiDsides,... + thermdata,thtol,thmaxit,2); + + + thermnrm = [eletnrm,innrm]; + + nrm(ith) = max([innrm,innrm1]); + if (verbose>=1) + subplot(1,3,1); + semilogy(nrm) + pause(.1) + end + if (nrm(ith)0) + fprintf(1,"\n***\n***\tThDD simulation over: # \ +of Global iterations = %d\n***\n",ith); + end + break + end + + + end + + res = {nrm,eletnrm,thermnrm}; + odata = thermdata; + \ No newline at end of file