Ignore:
Timestamp:
06/13/18 02:10:04 (7 years ago)
Author:
bdef
Message:

NEW:Minor Hydro bug and fixing coupling with friction

File:
1 edited

Legend:

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

    r22364 r22841  
    7474        bool   isefficientlayer;
    7575        int    hydrology_model;
    76        
     76
    7777        /*Fetch data needed: */
    7878        iomodel->FindConstant(&hydrology_model,"md.hydrology.model");
     
    161161                                loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
    162162                                loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
    163                         }       
     163                        }
    164164                }
    165165        }
     
    233233                active_element_input = basalelement->GetInput(HydrologydcMaskEplactiveEltEnum); _assert_(active_element_input);
    234234        }
    235        
     235
    236236        /* Start  looping on the number of gaussian points: */
    237237        Gauss* gauss=basalelement->NewGauss(2);
     
    250250                D[0][0]=D_scalar;
    251251                D[1][1]=D_scalar;
    252                 GetB(B,basalelement,xyz_list,gauss); 
     252                GetB(B,basalelement,xyz_list,gauss);
    253253                TripleMultiply(B,2,numnodes,1,
    254254                                                                         &D[0][0],2,2,0,
     
    265265                                                                                 basis,1,numnodes,0,
    266266                                                                                 &Ke->values[0],1);
    267                        
     267
    268268                        /*Transfer EPL part*/
    269269                        if(isefficientlayer){
     
    288288        delete gauss;
    289289        if(domaintype!=Domain2DhorizontalEnum){
    290                 basalelement->DeleteMaterials(); 
     290                basalelement->DeleteMaterials();
    291291                delete basalelement;
    292292        }
     
    412412        delete gauss;
    413413        if(domaintype!=Domain2DhorizontalEnum){
    414                 basalelement->DeleteMaterials(); 
     414                basalelement->DeleteMaterials();
    415415                delete basalelement;
    416416        }
     
    419419
    420420void HydrologyDCInefficientAnalysis::GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
    421         /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 
     421        /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2.
    422422         * For node i, Bi can be expressed in the actual coordinate system
    423          * by: 
     423         * by:
    424424         *       Bi=[ dN/dx ]
    425425         *          [ dN/dy ]
     
    507507                IssmDouble rho_ice        = basalelement->GetMaterialParameter(MaterialsRhoIceEnum);
    508508                IssmDouble g              = basalelement->GetMaterialParameter(ConstantsGEnum);
    509                
     509
    510510                basalelement->GetInputListOnVertices(thickness,ThicknessEnum);
    511511                basalelement->GetInputListOnVertices(base,BaseEnum);
     
    542542        xDelete<int>(doflist);
    543543        if(domaintype!=Domain2DhorizontalEnum){
    544                 basalelement->DeleteMaterials(); 
     544                basalelement->DeleteMaterials();
    545545                delete basalelement;
    546546        }
     
    554554IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input){/*{{{*/
    555555        int unconf_scheme;
    556         IssmDouble expfac; 
     556        IssmDouble expfac;
    557557        IssmDouble sediment_storing;
    558558        IssmDouble storing,yield;
     
    610610                sed_head_input->GetInputValue(&prestep_head,gauss);
    611611                water_sheet=max(0.0,(prestep_head-(base_elev-sediment_thickness)));
    612                
     612
    613613                //min definition of the if test
    614614                sediment_transmitivity=FullLayer_transmitivity*min(water_sheet/sediment_thickness,1.);
     
    625625
    626626void  HydrologyDCInefficientAnalysis::GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode){/*{{{*/
    627        
     627
    628628        int        hmax_flag;
    629629        IssmDouble h_max;
     
    632632        /*Get the flag to the limitation method*/
    633633        element->FindParam(&hmax_flag,HydrologydcSedimentlimitFlagEnum);
    634        
     634
    635635        /*Switch between the different cases*/
    636636        switch(hmax_flag){
     
    674674        case 1:
    675675                element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
    676                 transfer=+leakage; 
     676                transfer=+leakage;
    677677                break;
    678678        default:
     
    698698                _assert_(epl_head_input);
    699699                epl_head_input->GetInputValue(&epl_head,gauss);
    700                 if (element->Id()==42){
    701                         _printf_("epl head in sed Pvec transfer is "<<  epl_head <<"\n");
    702                 }
    703700                element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
    704701                transfer=+epl_head*leakage;
     
    718715                element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    719716                        Input* node_mask_input = element->GetInput(HydrologydcMaskEplactiveNodeEnum); _assert_(node_mask_input);
    720                
     717
    721718                if(node_mask_input->Max()>0.){
    722719                        element_active = true;
Note: See TracChangeset for help on using the changeset viewer.