Changeset 16334


Ignore:
Timestamp:
10/08/13 10:15:51 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: adding case mesh2dvertical

Location:
issm/trunk-jpl/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Materials/Matice.cpp

    r16296 r16334  
    844844                #endif
    845845        }
    846 
    847         /*if 3d*/
     846        else if(iomodel->meshtype==Mesh2DverticalEnum){
     847
     848                /*Intermediaries*/
     849                const int num_vertices = 3; //Tria has 3 vertices
     850                IssmDouble    nodeinputs[num_vertices];
     851                IssmDouble    cmmininputs[num_vertices];
     852                IssmDouble    cmmaxinputs[num_vertices];
     853
     854                /*Get B*/
     855                if (iomodel->Data(MaterialsRheologyBEnum)) {
     856                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyBEnum)[iomodel->elements[num_vertices*index+i]-1];
     857                        this->inputs->AddInput(new TriaInput(MaterialsRheologyBEnum,nodeinputs,P1Enum));
     858                }
     859
     860                /*Get n*/
     861                if (iomodel->Data(MaterialsRheologyNEnum)) {
     862                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(MaterialsRheologyNEnum)[index];
     863                        this->inputs->AddInput(new TriaInput(MaterialsRheologyNEnum,nodeinputs,P1Enum));
     864                }
     865
     866                /*Get D:*/
     867                if (iomodel->Data(DamageDEnum)) {
     868                        for(i=0;i<num_vertices;i++) nodeinputs[i]=iomodel->Data(DamageDEnum)[iomodel->elements[num_vertices*index+i]-1];
     869                        this->inputs->AddInput(new TriaInput(DamageDbarEnum,nodeinputs,P1Enum));
     870                }
     871        }
    848872        #ifdef _HAVE_3D_
    849873        else if(iomodel->meshtype==Mesh3DEnum){
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r16291 r16334  
    3434        materials = new Materials();
    3535
    36         #ifdef _HAVE_3D_
    37         if(iomodel->meshtype==Mesh3DEnum)iomodel->FetchData(2,MeshUpperelementsEnum,MeshLowerelementsEnum);
    38         #endif
     36        /*Create elements*/
    3937        if(control_analysis)iomodel->FetchData(3,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    40 
    41         /*Create elements*/
    42         for(i=0;i<iomodel->numberofelements;i++){
    43                 if(iomodel->my_elements[i]){
    44 
    45                         /*Create and add tria element to elements dataset: */
    46                         if(iomodel->meshtype==Mesh2DhorizontalEnum) elements->AddObject(new Tria(i+1,i,i,iomodel,nummodels));
    47                 #ifdef _HAVE_3D_
    48                         else       elements->AddObject(new Penta(i+1,i,i,iomodel,nummodels));
    49                 #endif
    50                 }
     38        switch(iomodel->meshtype){
     39                case Mesh2DhorizontalEnum:
     40                        materials->InputDuplicate(MaterialsRheologyBbarEnum,QmuMaterialsRheologyBEnum);
     41                        for(i=0;i<iomodel->numberofelements;i++){
     42                                if(iomodel->my_elements[i]) elements->AddObject(new Tria(i+1,i,i,iomodel,nummodels));
     43                        }
     44                        break;
     45                case Mesh2DverticalEnum:
     46                        for(i=0;i<iomodel->numberofelements;i++){
     47                                if(iomodel->my_elements[i]) elements->AddObject(new Tria(i+1,i,i,iomodel,nummodels));
     48                        }
     49                        break;
     50                #ifdef _HAVE_3D_
     51                case Mesh3DEnum:
     52                        iomodel->FetchData(2,MeshUpperelementsEnum,MeshLowerelementsEnum);
     53                        for(i=0;i<iomodel->numberofelements;i++){
     54                                if(iomodel->my_elements[i]) elements->AddObject(new Penta(i+1,i,i,iomodel,nummodels));
     55                        }
     56                        break;
     57                #endif
     58                default:
     59                        _error_("Mesh not supported yet");
    5160        }
    5261
     
    5766                        for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    5867                        if(dakota_analysis){
    59                                 if(iomodel->meshtype==Mesh2DhorizontalEnum) materials->InputDuplicate(MaterialsRheologyBbarEnum,QmuMaterialsRheologyBEnum);
    60            #ifdef _HAVE_3D_
    61                                 else       materials->InputDuplicate(MaterialsRheologyBEnum,QmuMaterialsRheologyBEnum);
    62            #endif
     68                                switch(iomodel->meshtype){
     69                                        case Mesh2DhorizontalEnum:
     70                                                materials->InputDuplicate(MaterialsRheologyBbarEnum,QmuMaterialsRheologyBEnum);
     71                                                break;
     72                                   #ifdef _HAVE_3D_
     73                                        case Mesh3DEnum:
     74                                                materials->InputDuplicate(MaterialsRheologyBEnum,QmuMaterialsRheologyBEnum);
     75                                                break;
     76                                   #endif
     77                                        default:
     78                                                _error_("Mesh not supported yet");
     79                                }
    6380                        }
    6481                        break;
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp

    r16291 r16334  
    5555        switch(iomodel->meshtype){
    5656                case Mesh2DhorizontalEnum:
     57                        elements_width=3;
     58                        numberofelements2d = 0;
     59                        numberofvertices2d = 0;
     60                        numlayers          = 0;
     61                        break;
     62                case Mesh2DverticalEnum:
    5763                        elements_width=3;
    5864                        numberofelements2d = 0;
Note: See TracChangeset for help on using the changeset viewer.