Changeset 4651


Ignore:
Timestamp:
07/19/10 11:24:03 (15 years ago)
Author:
Mathieu Morlighem
Message:

Fixed MacAyeal-Hutter and some debugging in CM Stokes. Also removed a couple of useless files

Location:
issm/trunk/src
Files:
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r4610 r4651  
    10341034        /*Just branch to the correct InputUpdateFromSolution generator, according to the type of analysis we are carrying out: */
    10351035        if (analysis_type==DiagnosticHorizAnalysisEnum)
    1036                 GetSolutionFromInputsDiagnosticHoriz(solution);
     1036         GetSolutionFromInputsDiagnosticHoriz(solution);
    10371037        else if (analysis_type==AdjointHorizAnalysisEnum)
    10381038         GetSolutionFromInputsAdjointHoriz(solution);
     1039        else if (analysis_type==DiagnosticHutterAnalysisEnum)
     1040         GetSolutionFromInputsDiagnosticHutter(solution);
    10391041        else
    10401042         ISSMERROR("analysis: %s not supported yet",EnumAsString(analysis_type));
     
    53525354}
    53535355/*}}}*/
     5356/*FUNCTION Tria::GetSolutionFromInputsDiagnosticHutter{{{1*/
     5357void  Tria::GetSolutionFromInputsDiagnosticHutter(Vec solution){
     5358
     5359        int i;
     5360
     5361        const int    numvertices=3;
     5362        const int    numdofpervertex=2;
     5363        const int    numdof=numdofpervertex*numvertices;
     5364        double       gauss[numvertices][numvertices]={{1,0,0},{0,1,0},{0,0,1}};
     5365
     5366        int          doflist[numdof];
     5367        double       values[numdof];
     5368        double       vx;
     5369        double       vy;
     5370
     5371        int          dummy;
     5372
     5373        /*Get dof list: */
     5374        GetDofList(&doflist[0],&dummy);
     5375
     5376        /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
     5377        /*P1 element only for now*/
     5378        for(i=0;i<numvertices;i++){
     5379
     5380                /*Recover vx and vy*/
     5381                inputs->GetParameterValue(&vx,&gauss[i][0],VxEnum);
     5382                inputs->GetParameterValue(&vy,&gauss[i][0],VyEnum);
     5383                values[i*numdofpervertex+0]=vx;
     5384                values[i*numdofpervertex+1]=vy;
     5385        }
     5386
     5387        /*Add value to global vector*/
     5388        VecSetValues(solution,numdof,doflist,(const double*)values,INSERT_VALUES);
     5389
     5390}
     5391/*}}}*/
    53545392/*FUNCTION Tria::GradjDragStokes {{{1*/
    53555393void  Tria::GradjDragStokes(Vec gradient){
  • issm/trunk/src/c/objects/Elements/Tria.h

    r4575 r4651  
    154154                void      GetSolutionFromInputsDiagnosticHoriz(Vec solution);
    155155                void      GetSolutionFromInputsAdjointHoriz(Vec solution);
     156                void      GetSolutionFromInputsDiagnosticHutter(Vec solution);
    156157                void      GradjDragStokes(Vec gradient);
    157158                void      InputUpdateFromSolutionAdjointHoriz( double* solution);
  • issm/trunk/src/c/solutions/diagnostic_core.cpp

    r4521 r4651  
    5151                       
    5252                if(verbose)_printf_("%s\n"," computing hutter velocities...");
     53
     54                //Take the last velocity into account so that the velocity on the MacAyeal domain is not zero
     55                if (ismacayealpattyn) ResetBoundaryConditions(femmodel,DiagnosticHutterAnalysisEnum);
     56
    5357                femmodel->SetCurrentConfiguration(DiagnosticHutterAnalysisEnum);
    5458                solver_linear(NULL,femmodel);
  • issm/trunk/src/c/solutions/stokescontrolinit.cpp

    r4521 r4651  
    4242        femmodel->SetCurrentConfiguration(DiagnosticHorizAnalysisEnum);
    4343        solver_diagnostic_nonlinear(NULL,NULL,NULL,femmodel,conserve_loads);
    44 
    45         //vertical velocity
     44        femmodel->SetCurrentConfiguration(DiagnosticVertAnalysisEnum);
    4645        solver_linear(NULL,femmodel);
    4746
  • issm/trunk/src/m/solutions/diagnostic_core.m

    r4521 r4651  
    3535
    3636                displaystring(verbose,'\n%s',['computing hutter velocities...']);
     37
     38                %Take the last velocity into account so that the velocity on the MacAyeal domain is not zero
     39                if(ismacayealpattyn)femmodel=ResetBoundaryConditions(femmodel,DiagnosticHutterAnalysisEnum); end
     40
    3741                femmodel=SetCurrentConfiguration(femmodel,DiagnosticHutterAnalysisEnum);
    3842                femmodel=solver_linear(femmodel);
  • issm/trunk/src/m/solutions/stokescontrolinit.m

    r4577 r4651  
    2121        femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum);
    2222        femmodel=solver_diagnostic_nonlinear(femmodel,conserve_loads);
    23 
    24         %vertical velocity
     23        femmodel=SetCurrentConfiguration(femmodel,DiagnosticVertAnalysisEnum);
    2524        femmodel=solver_linear(femmodel);
    2625
Note: See TracChangeset for help on using the changeset viewer.