Changeset 4525


Ignore:
Timestamp:
07/12/10 10:54:50 (15 years ago)
Author:
Eric.Larour
Message:

New matlab solver

Location:
issm/trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk/src/m/solutions/SpawnCore.m

    r4491 r4525  
    1111solution_type=femmodel.parameters.SolutionType;
    1212
    13 displaystring(verbose,'%s%i',['   qmu iteration:'],counter);
     13displaystring(1,'%s%i',['   qmu iteration:'],counter);
    1414
    1515%first update the inputs to the femmodel using the variables provided to us by dakota.
     
    2121
    2222%now process the results to get response function values
    23 responses=zeros(numel(responsedescriptors),1);
    24 for i=1:numel(responsedescriptors),
    25         descriptor=responsedescriptors{i};
    26         responses(i)=qmuresponse(femmodel,descriptor);
    27 end
     23responses=DakotaResponses(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,responsedescriptors);
  • TabularUnified issm/trunk/src/mex/DakotaResponses/DakotaResponses.cpp

    r4453 r4525  
    4343                pfield=mxGetCell(RESPONSESDESCRIPTORS,i);
    4444                stringlength = (mxGetM(pfield) * mxGetN(pfield) * sizeof(mxChar)) + 1 ;
     45                string=(char*)xmalloc(stringlength);
    4546                mxGetString(pfield,string,stringlength);
    46                
    4747                responses_descriptors[i]=string;
    4848        }
  • TabularUnified issm/trunk/src/mex/InputUpdateFromDakota/InputUpdateFromDakota.cpp

    r4491 r4525  
    4747                pfield=mxGetCell(VARIABLESDESCRIPTORS,i);
    4848                stringlength = (mxGetM(pfield) * mxGetN(pfield) * sizeof(mxChar)) + 1 ;
     49                string=(char*)xmalloc(stringlength);
    4950                mxGetString(pfield,string,stringlength);
    5051
  • TabularUnified issm/trunk/src/mex/Qmu/Qmu.cpp

    r4453 r4525  
    3838        Qmux(femmodel,parameters);
    3939
     40        /*Free ressources:*/
     41        delete parameters;
     42
    4043        /*end module: */
    4144        MODULEEND();
     45
    4246
    4347}
  • TabularUnified issm/trunk/src/mex/Solver/Solver.cpp

    r4453 r4525  
    1313        char* solver_string=NULL;
    1414        Parameters* parameters=NULL;
     15               
     16        /*Matlab solver: */
     17        mxArray* array[2];
     18        char* matlabstring="-ksp_type matlab";
    1519
    1620        /* output datasets: */
     
    2327        CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&SolverUsage);
    2428
    25         /*Input datasets: */
    26         FetchData(&Kff,KFF);
    27         FetchData(&pf,PF);
    28         FetchData(&uf0,UF0);
     29        /*First, check solver string: */
    2930        FetchParams(&parameters,PARAMETERS);
    3031        parameters->FindParam(&solver_string,SolverStringEnum);
     32       
     33        /*Fetch rest of data only if not running the matlab solver: */
     34        if (strcmp(solver_string,matlabstring)!=0){
     35                /*Input datasets: */
     36                FetchData(&Kff,KFF);
     37                FetchData(&pf,PF);
     38                FetchData(&uf0,UF0);
     39        }
    3140
    32         /*!Reduce vector: */
    33         Solverx(&uf, Kff, pf, uf0, solver_string);
     41        /*Run solver code: */
     42        if (strcmp(solver_string,matlabstring)!=0){
     43                /*Petsc solver: */
     44                Solverx(&uf, Kff, pf, uf0, solver_string);
     45        }
     46        else{
     47                /*Matlab solver: */
     48                array[0]=KFF;
     49                array[1]=PF;
     50                mexCallMATLAB(1,UF,2,array,"\\");
     51        }
    3452
    35         /*write output datasets: */
    36         WriteData(UF,uf);
     53        /*write output datasets if running Petsc solver: */
     54        if (strcmp(solver_string,matlabstring)!=0) WriteData(UF,uf);
    3755
    3856        /*Free ressources: */
    39         MatFree(&Kff);
    40         VecFree(&pf);
    41         VecFree(&uf0);
    42         VecFree(&uf);
     57        if (strcmp(solver_string,matlabstring)!=0){
     58                MatFree(&Kff);
     59                VecFree(&pf);
     60                VecFree(&uf0);
     61                VecFree(&uf);
     62                delete parameters;
     63        }
    4364        xfree((void**)&solver_string);
    44         delete parameters;
    4565
    4666        /*end module: */
  • TabularUnified issm/trunk/test/Verification/test25_IceSheetIceFrontM2dDakota/Square.par

    r4491 r4525  
    6363
    6464md.eps_rel=10^-10; %tighten for qmu analysese
     65md.solverstring
Note: See TracChangeset for help on using the changeset viewer.