Changeset 11337


Ignore:
Timestamp:
02/06/12 16:41:32 (13 years ago)
Author:
Mathieu Morlighem
Message:

Fixed Newton's method: do not change ys

Location:
issm/trunk-jpl/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/solvers/solver_newton.cpp

    r11332 r11337  
    6868
    6969                /*Prepare next iteration using Newton's method*/
    70                 SystemMatricesx(&Kff,NULL,&pf,NULL,&kmax,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
    71                 CreateJacobianMatrixx(&Jff,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,kmax);
    72                 CreateNodalConstraintsx(&ys,femmodel->nodes,configuration_type);VecScale(ys,0.);
     70                SystemMatricesx(&Kff,&Kfs,&pf,NULL,&kmax,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     71                CreateNodalConstraintsx(&ys,femmodel->nodes,configuration_type);
     72                Reduceloadx(pf,Kfs,ys);   MatFree(&Kfs);
     73
    7374                VecDuplicate(pf,&pJf);
    7475                MatMultPatch(Kff,uf,pJf); MatFree(&Kff);
    7576                VecScale(pJf,-1.);
    7677                VecAXPY(pJf,+1.,pf);      VecFree(&pf);
    77                 Solverx(&duf,Jff,pJf,NULL,NULL,femmodel->parameters);
    78                 MatFree(&Jff);            VecFree(&pJf);
     78
     79                CreateJacobianMatrixx(&Jff,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,kmax);
     80                Solverx(&duf,Jff,pJf,NULL,NULL,femmodel->parameters); MatFree(&Jff);//VecFree(&pJf);
    7981                VecAXPY(uf,1.,duf);      VecFree(&duf);
    8082                Mergesolutionfromftogx(&ug,uf,ys,femmodel->nodes,femmodel->parameters);VecFree(&ys);
  • issm/trunk-jpl/src/m/solvers/solver_newton.m

    r11336 r11337  
    5151                Jff=CreateJacobianMatrix(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,kmax);
    5252                duf=Solver(Jff,pJf,[],[],femmodel.parameters);
    53                 ys=0*ys;
    5453                uf=uf+duf;
    5554                ug=Mergesolutionfromftog(uf,ys,femmodel.nodes,femmodel.parameters);
Note: See TracChangeset for help on using the changeset viewer.