Changeset 15722


Ignore:
Timestamp:
08/06/13 11:05:38 (12 years ago)
Author:
seroussi
Message:

CHG: finite element interpolation can vary inside a solution

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r15696 r15722  
    1717
    1818        int    materials_type,finiteelement,temp;
     19        int    approximation;
     20        int*   finiteelement_list=NULL;
    1921        bool   isSSA,isL1L2,isHO,isFS,iscoupling;
    2022        bool   control_analysis;
     
    2931        iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
    3032        iomodel->Constant(&materials_type,MaterialsEnum);
     33
     34        /*Fetch data needed and allocate vectors: */
     35        iomodel->FetchData(1,FlowequationElementEquationEnum);
     36        finiteelement_list=xNewZeroInit<int>(iomodel->numberofelements);
    3137
    3238        /*Now, is the flag macayaealHO on? otherwise, do nothing: */
     
    7783                        }
    7884                }
     85                for(int i=0;i<iomodel->numberofelements;i++){
     86                        finiteelement_list[i]=finiteelement;
     87                }
    7988        }
    8089        else{
    8190                if(isFS){
    82                         finiteelement = MINIEnum;
     91                        for(int i=0;i<iomodel->numberofelements;i++){
     92                                approximation=reCast<int>(iomodel->Data(FlowequationElementEquationEnum)[i]);
     93                                if(approximation==FSApproximationEnum || approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
     94                                        finiteelement_list[i]=MINIcondensedEnum;
     95                                }
     96                                else{
     97                                        finiteelement_list[i]=P1Enum;
     98                                }
     99                        }
    83100                }
    84101                else{
    85102                        finiteelement = P1Enum;
     103                        for(int i=0;i<iomodel->numberofelements;i++){
     104                                finiteelement_list[i]=finiteelement;
     105                        }
    86106                }
    87 
    88107        }
    89 
    90         /*Fetch data needed: */
    91         iomodel->FetchData(1,FlowequationElementEquationEnum);
    92108
    93109        /*Update elements: */
     
    96112                if(iomodel->my_elements[i]){
    97113                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    98                         element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement);
     114                        element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]);
    99115                        counter++;
    100116                }
     
    157173        /*Free data: */
    158174        iomodel->DeleteData(1,FlowequationElementEquationEnum);
     175        xDelete<int>(finiteelement_list);
    159176}
Note: See TracChangeset for help on using the changeset viewer.