Ignore:
Timestamp:
01/01/19 21:09:23 (6 years ago)
Author:
Mathieu Morlighem
Message:

CHG: AMR now uses a lot more of the model processor functions. In some cases, we now have to pass the flag isAMR so that fields from iomodel are not loaded

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r23576 r23585  
    496496        }
    497497}/*}}}*/
    498 void StressbalanceAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
     498void StressbalanceAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel,bool isamr){/*{{{*/
    499499
    500500        /*Intermediary*/
     
    537537                        iomodel->FindConstant(&finiteelement,"md.flowequation.fe_FS");
    538538                }
    539                 iomodel->FetchData(3,"md.flowequation.borderSSA","md.flowequation.vertex_equation","md.stressbalance.referential");
    540                 if(iomodel->domaintype!=Domain2DhorizontalEnum) iomodel->FetchData(3,"md.mesh.vertexonbase","md.mesh.vertexonsurface","md.flowequation.borderFS");
    541                 ::CreateNodes(nodes,iomodel,StressbalanceAnalysisEnum,finiteelement,approximation);
    542                 iomodel->DeleteData(6,"md.mesh.vertexonbase","md.mesh.vertexonsurface","md.flowequation.borderSSA","md.flowequation.vertex_equation",
     539                if(!isamr){
     540                        iomodel->FetchData(3,"md.flowequation.borderSSA","md.flowequation.vertex_equation","md.stressbalance.referential");
     541                        if(iomodel->domaintype!=Domain2DhorizontalEnum) iomodel->FetchData(3,"md.mesh.vertexonbase","md.mesh.vertexonsurface","md.flowequation.borderFS");
     542                }
     543                ::CreateNodes(nodes,iomodel,StressbalanceAnalysisEnum,finiteelement,isamr,approximation);
     544                if(!isamr){
     545                        iomodel->DeleteData(6,"md.mesh.vertexonbase","md.mesh.vertexonsurface","md.flowequation.borderSSA","md.flowequation.vertex_equation",
    543546                                        "md.stressbalance.referential","md.flowequation.borderFS");
     547                }
    544548        }
    545549        else{
     
    556560                        for(int i=0;i<iomodel->numberofelements;i++) approximations[iomodel->numberofvertices+i] = FSvelocityEnum;
    557561                        for(int i=0;i<iomodel->numberofvertices;i++) approximations[iomodel->numberofvertices+iomodel->numberofelements+i] = FSpressureEnum;
    558                         ::CreateNodes(nodes,iomodel,StressbalanceAnalysisEnum,MINIcondensedEnum,0,approximations);
     562                        ::CreateNodes(nodes,iomodel,StressbalanceAnalysisEnum,MINIcondensedEnum,isamr,0,approximations);
    559563                        xDelete<int>(approximations);
    560564
     
    575579                        int* approximations = xNew<int>(iomodel->numberofvertices);
    576580                        for(int i=0;i<iomodel->numberofvertices;i++) approximations[i] = IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
    577                         ::CreateNodes(nodes,iomodel,StressbalanceAnalysisEnum,P1Enum,0,approximations);
     581                        ::CreateNodes(nodes,iomodel,StressbalanceAnalysisEnum,P1Enum,isamr,0,approximations);
    578582                        xDelete<int>(approximations);
    579583                }
Note: See TracChangeset for help on using the changeset viewer.