Changeset 16864


Ignore:
Timestamp:
11/21/13 15:31:52 (11 years ago)
Author:
bdef
Message:

CHG:Modification in the way we treat with the epl element mask

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

Legend:

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

    r16854 r16864  
    283283        return rho_freshwater*g*sediment_porosity*sediment_thickness*(water_compressibility+(sediment_compressibility/sediment_porosity));               
    284284}/*}}}*/
     285void HydrologyDCInefficientAnalysis::ElementizeEplMask(FemModel* femmodel){/*{{{*/
     286
     287        bool     element_active;
     288        Element* element=NULL;
     289
     290        for(int i=0;i<femmodel->elements->Size();i++){
     291                element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
     292
     293                int numvertices = element->GetNumberOfVertices();
     294                Input* node_mask_input = element->GetInput(HydrologydcMaskEplactiveNodeEnum);
     295                if(node_mask_input->Max()>0.) element_active = true;
     296                else                          element_active = false;
     297
     298                element->AddInput(new BoolInput(HydrologydcMaskEplactiveEltEnum,element_active));
     299        }
     300}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h

    r16853 r16864  
    2828                /*Intermediaries*/
    2929                IssmDouble SedimentStoring(Element* element);
     30                void ElementizeEplMask(FemModel* femmodel);
    3031};
    3132#endif
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r16860 r16864  
    4545                virtual void   AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
    4646                virtual void   AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
     47                virtual void   AddInput(Input* input_in)=0;
    4748                virtual void   AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
    4849                virtual ElementMatrix* CreateKMatrix(void)=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r16860 r16864  
    126126        _assert_(this->inputs);
    127127        this->inputs->AddInput(new PentaInput(input_enum,values,interpolation_enum));
     128}
     129/*}}}*/
     130/*FUNCTION Tria::AddInput{{{*/
     131void  Penta::AddInput(Input* input_in){
     132
     133        /*Call inputs method*/
     134        _assert_(this->inputs);
     135        this->inputs->AddInput(input_in);
    128136}
    129137/*}}}*/
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r16860 r16864  
    205205                void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
    206206                void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
     207                void           AddInput(Input* input_in);
    207208                void           AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum);
    208209                void             NormalBase(IssmDouble* bed_normal, IssmDouble* xyz_list);
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r16862 r16864  
    7171                void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
    7272                void        AddInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
     73                void        AddInput(Input* input_in){_error_("not implemented yet");};
    7374                void        AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
    7475                IssmDouble  CharacteristicLength(void){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16862 r16864  
    189189        _assert_(this->inputs);
    190190        this->inputs->AddInput(new TriaInput(input_enum,values,interpolation_enum));
     191}
     192/*}}}*/
     193/*FUNCTION Tria::AddInput{{{*/
     194void  Tria::AddInput(Input* input_in){
     195
     196        /*Call inputs method*/
     197        _assert_(this->inputs);
     198        this->inputs->AddInput(input_in);
    191199}
    192200/*}}}*/
     
    69616969        IssmDouble epl_head[numdof],sed_head[numdof];
    69626970
     6971        Input* active_element=NULL;
     6972
    69636973        GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
    69646974
     
    69796989                        int analysis_type;
    69806990                        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
     6991                        active_element=inputs->GetInput(HydrologydcMaskEplactiveEltEnum); _assert_(active_element);
    69816992
    69826993                        GetInputListOnVertices(&activeEpl[0],HydrologydcMaskEplactiveNodeEnum);
     
    69927003                        //              printf("Which analyse %i \n",analysis_type);
    69937004
    6994                         if(!this->AnyActive()){
     7005                        if(!active_element){
    69957006
    69967007                                //printf("NoneActive\n");
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r16862 r16864  
    217217                void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
    218218                void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
     219                void           AddInput(Input* input_in);
    219220                void           AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum);
    220221                ElementMatrix* CreateKMatrix(void);
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp

    r16854 r16864  
    8383                sedconverged=false;
    8484                for(;;){
     85                        /*Updating Nodal Mask*/
     86                        HydrologyDCInefficientAnalysis* analysis = new HydrologyDCInefficientAnalysis();
     87                        analysis->ElementizeEplMask(femmodel);
     88                        delete analysis;
     89
    8590                        femmodel->HydrologyTransferx();
    8691                        SystemMatricesx(&Kff,&Kfs,&pf,&df,&sediment_kmax,femmodel);
     
    143148                                //updating mask after the computation of the epl thickness (Allow to close too thin EPL)
    144149                                femmodel->HydrologyEPLupdateDomainx();
     150                                /*Updating Nodal Mask*/
     151                                HydrologyDCInefficientAnalysis* analysis = new HydrologyDCInefficientAnalysis();
     152                                analysis->ElementizeEplMask(femmodel);
     153                                delete analysis;
    145154
    146155                                femmodel->HydrologyTransferx();
Note: See TracChangeset for help on using the changeset viewer.