Changeset 4253


Ignore:
Timestamp:
06/28/10 09:39:34 (15 years ago)
Author:
Mathieu Morlighem
Message:

Added Vz As output of diagnostics

Location:
issm/trunk/src/c
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumAsString.cpp

    r4166 r4253  
    199199                case ThicknessEnum : return "Thickness";
    200200                case TypeEnum : return "Type";
     201                case VelEnum : return "Vel";
     202                case VelObsEnum : return "VelObs";
    201203                case ViscosityOvershootEnum : return "ViscosityOvershoot";
    202204                case VxAverageEnum : return "VxAverage";
     
    232234                case JEnum : return "J";
    233235                case PatchEnum : return "Patch";
     236                case TimeEnum : return "Time";
    234237                case RelativeEnum : return "Relative";
    235238                case ResidualEnum : return "Residual";
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r4182 r4253  
    227227        ThicknessEnum,
    228228        TypeEnum,
     229        VelEnum,
     230        VelObsEnum,
    229231        ViscosityOvershootEnum,
    230232        VxAverageEnum,
  • issm/trunk/src/c/EnumDefinitions/StringAsEnum.cpp

    r4166 r4253  
    197197        else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
    198198        else if (strcmp(name,"Type")==0) return TypeEnum;
     199        else if (strcmp(name,"Vel")==0) return VelEnum;
     200        else if (strcmp(name,"VelObs")==0) return VelObsEnum;
    199201        else if (strcmp(name,"ViscosityOvershoot")==0) return ViscosityOvershootEnum;
    200202        else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
     
    230232        else if (strcmp(name,"J")==0) return JEnum;
    231233        else if (strcmp(name,"Patch")==0) return PatchEnum;
     234        else if (strcmp(name,"Time")==0) return TimeEnum;
    232235        else if (strcmp(name,"Relative")==0) return RelativeEnum;
    233236        else if (strcmp(name,"Residual")==0) return ResidualEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r4250 r4253  
    18911891void  Penta::InputUpdateFromSolutionDiagnosticHoriz(double* solution){
    18921892       
    1893        
    18941893        int i;
    18951894
     
    19021901        double       vx[numvertices];
    19031902        double       vy[numvertices];
     1903        double       vz[numvertices];
     1904        double       vel[numvertices];
    19041905        int          dummy;
    19051906        double       pressure[numvertices];
     
    19081909        double       xyz_list[numvertices][3];
    19091910        double       gauss[numvertices][numvertices]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{1,0,0,1},{0,1,0,1},{0,0,1,1}};
    1910 
    19111911       
     1912        Input*       VzInput=NULL;
     1913        double*      VzPtr=NULL;
     1914
    19121915        /*Get dof list: */
    19131916        GetDofList(&doflist[0],&dummy);
     
    19261929                vy[i]=values[i*numdofpervertex+1];
    19271930        }
     1931
     1932        /*Get Vz*/
     1933        VzInput=inputs->GetInput(VzEnum);
     1934        if (VzInput){
     1935                if (VzInput->Enum()!=TriaVertexInputEnum){
     1936                        ISSMERROR("Cannot compute Vel as Vz is of type %s",EnumAsString(VzInput->Enum()));
     1937                }
     1938                VzInput->GetValuesPtr(&VzPtr,&dummy);
     1939                for(i=0;i<numvertices;i++) vz[i]=VzPtr[i];
     1940        }
     1941        else{
     1942                for(i=0;i<numvertices;i++) vz[i]=0.0;
     1943        }
     1944
     1945        /*Now Compute vel*/
     1946        for(i=0;i<numvertices;i++) vel[i]=pow( pow(vx[i],2.0) + pow(vy[i],2.0) + pow(vz[i],2.0) , 0.5);
    19281947
    19291948        /*For pressure: we have not computed pressure in this analysis, for this element. We are in 3D,
     
    19451964        this->inputs->AddInput(new PentaVertexInput(VxEnum,vx));
    19461965        this->inputs->AddInput(new PentaVertexInput(VyEnum,vy));
     1966        this->inputs->AddInput(new TriaVertexInput(VelEnum,vel));
    19471967        this->inputs->AddInput(new PentaVertexInput(PressureEnum,pressure));
    19481968}
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r4248 r4253  
    674674        double       vx[numvertices];
    675675        double       vy[numvertices];
     676        double       vz[numvertices];
     677        double       vel[numvertices];
    676678        double       pressure[numvertices];
    677679        double       thickness[numvertices];
     
    679681        double       gauss[numvertices][numvertices]={{1,0,0},{0,1,0},{0,0,1}};
    680682
    681 
    682683        int          dummy;
     684        Input*       VzInput=NULL;
     685        double*      VzPtr=NULL;
    683686       
    684687        /*Get dof list: */
     
    695698                vy[i]=values[i*numdofpervertex+1];
    696699        }
     700
     701        /*Get Vz*/
     702        VzInput=inputs->GetInput(VzEnum);
     703        if (VzInput){
     704                if (VzInput->Enum()!=TriaVertexInputEnum){
     705                        ISSMERROR("Cannot compute Vel as Vz is of type %s",EnumAsString(VzInput->Enum()));
     706                }
     707                VzInput->GetValuesPtr(&VzPtr,&dummy);
     708                for(i=0;i<numvertices;i++) vz[i]=VzPtr[i];
     709        }
     710        else{
     711                for(i=0;i<numvertices;i++) vz[i]=0.0;
     712        }
     713
     714        /*Now Compute vel*/
     715        for(i=0;i<numvertices;i++) vel[i]=pow( pow(vx[i],2.0) + pow(vy[i],2.0) + pow(vz[i],2.0) , 0.5);
    697716
    698717        /*For pressure: we have not computed pressure in this analysis, for this element. We are in 2D,
     
    715734        this->inputs->AddInput(new TriaVertexInput(VxEnum,vx));
    716735        this->inputs->AddInput(new TriaVertexInput(VyEnum,vy));
     736        this->inputs->AddInput(new TriaVertexInput(VelEnum,vel));
    717737        this->inputs->AddInput(new TriaVertexInput(PressureEnum,pressure));
    718 
    719738
    720739}
     
    49294948}
    49304949/*}}}*/
    4931 /*FUNCTION Tria::Tria::SetClone {{{1*/
     4950/*FUNCTION Tria::SetClone {{{1*/
    49324951void  Tria::SetClone(int* minranks){
    49334952
  • issm/trunk/src/c/solutions/diagnostic_core.cpp

    r4076 r4253  
    8787        InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum);
    8888        InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum);
     89        InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VelEnum);
    8990        InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,PressureEnum);
    90         if(dim==3) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum);
     91        if(dim==3) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VzEnum);
    9192
    92        
    9393}
Note: See TracChangeset for help on using the changeset viewer.