Changeset 26256


Ignore:
Timestamp:
05/10/21 13:22:33 (4 years ago)
Author:
Cheng Gong
Message:

CHG: Revert LevelsetAnalysis.cpp to r26254 and remove unnecessary variables in Cflevelsetmisfit

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

Legend:

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

    r26255 r26256  
    1010#include "../modules/modules.h"
    1111#include "../solutionsequences/solutionsequences.h"
    12 #include "../classes/Inputs/DatasetInput.h"
    13 
    1412
    1513void LevelsetAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
     
    5149
    5250        iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    53 //      iomodel->FetchDataToInput(inputs,elements,"md.mask.ref_levelset",MaskIceRefLevelsetEnum);
    5451        iomodel->FetchDataToInput(inputs,elements,"md.initialization.vx",VxEnum);
    5552        iomodel->FetchDataToInput(inputs,elements,"md.initialization.vy",VyEnum);
     
    7067                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    7168                        break;
    72                 case CalvingTestEnum:
    73                         iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
    74                         iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);
    75                         iomodel->FetchDataToInput(inputs,elements,"md.calving.Qrates",CalvingNonlinearQRateEnum);
    76                         iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    77                         break;
    7869                case CalvingMinthicknessEnum:
    7970                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
     
    112103void LevelsetAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
    113104
    114         IssmDouble* coefficients=NULL;
    115         int nco;
    116 
    117105        parameters->AddObject(iomodel->CopyConstantObject("md.levelset.stabilization",LevelsetStabilizationEnum));
    118106        parameters->AddObject(iomodel->CopyConstantObject("md.levelset.reinit_frequency",LevelsetReinitFrequencyEnum));
     
    129117                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.min_thickness",CalvingMinthicknessEnum));
    130118                        break;
    131                 case CalvingTestEnum:
    132                         parameters->AddObject(iomodel->CopyConstantObject("md.calving.min_thickness",CalvingMinthicknessEnum));
    133                         parameters->AddObject(iomodel->CopyConstantObject("md.calving.dt_order",CalvingDtimeorderEnum));
    134                         parameters->AddObject(iomodel->CopyConstantObject("md.calving.nonlinear_law",CalvingNonlinearLawEnum));
    135                        
    136                         /* Add the coefficients for the new nonlinear law */
    137                         iomodel->FetchData(&coefficients, &nco, NULL, "md.calving.coefficients");
    138               parameters->AddObject(new DoubleMatParam(CalvingNonlinearCoeffEnum, coefficients, nco, 1));
    139                         xDelete<IssmDouble>(coefficients);
    140119                case CalvingMinthicknessEnum:
    141120                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.min_thickness",CalvingMinthicknessEnum));
     
    236215        IssmDouble*    dbasis   = xNew<IssmDouble>(2*numnodes);
    237216        IssmDouble*    Bprime = NULL;
    238         IssmDouble              tau;
    239217        if(stabilization==2){
    240218                Bprime   = xNew<IssmDouble>(dim*numnodes);
     
    362340
    363341        /*Intermediaries */
    364         int domaintype, stabilization;
     342        int domaintype;
    365343        IssmDouble  Jdet,dt;
    366344        IssmDouble  lsf;
    367345        IssmDouble* xyz_list = NULL;
    368    IssmDouble  vx,vy,vel,h,tau;
    369346
    370347        /*Fetch number of nodes and dof for this finite element*/
     
    374351        ElementVector* pe = basalelement->NewElementVector();
    375352        basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
    376    basalelement->FindParam(&stabilization,LevelsetStabilizationEnum);
    377353
    378354        if(dt!=0.){
     
    383359                basalelement->GetVerticesCoordinates(&xyz_list);
    384360                Input* levelset_input     = basalelement->GetInput(MaskIceLevelsetEnum);                    _assert_(levelset_input);
    385                
    386         //      h=element->CharacteristicLength();
    387361
    388362                /* Start  looping on the number of gaussian points: */
     
    499473        }
    500474
    501         if(calvinglaw==CalvingTestEnum){
    502 
    503                 /*Get minimum thickness threshold*/
    504                 femmodel->parameters->FindParam(&min_thickness,CalvingMinthicknessEnum);
    505 
    506                 /*Loop over all elements of this partition*/
    507                 for(Object* & object : femmodel->elements->objects){
    508                         Element* element  = xDynamicCast<Element*>(object);
    509 
    510                         int      numnodes = element->GetNumberOfNodes();
    511                         Gauss*   gauss    = element->NewGauss();
    512                         Input*   H_input  = element->GetInput(ThicknessEnum); _assert_(H_input);
    513                         Input*   b_input = element->GetInput(BedEnum); _assert_(b_input);
    514                         Input*   sl_input = element->GetInput(SealevelEnum); _assert_(sl_input);
    515 
    516                         /*Potentially constrain nodes of this element*/
    517                         for(int in=0;in<numnodes;in++){
    518                                 gauss->GaussNode(element->GetElementType(),in);
    519                                 Node* node=element->GetNode(in);
    520                                 if(!node->IsActive()) continue;
    521 
    522                                 H_input->GetInputValue(&thickness,gauss);
    523                                 b_input->GetInputValue(&bed,gauss);
    524                                 sl_input->GetInputValue(&sealevel,gauss);
    525                                 if(thickness<min_thickness && bed<sealevel){
    526                                         node->ApplyConstraint(0,+1.);
    527                                 }
    528                                 else {
    529                                         /* no ice, set no spc */
    530                                         node->DofInFSet(0);
    531                                 }
    532                         }
    533                         delete gauss;
    534                 }
    535         }
    536475        if(calvinglaw==CalvingHabEnum){
    537476
  • issm/trunk-jpl/src/c/classes/Cflevelsetmisfit.h

    r26252 r26256  
    1818
    1919                int         definitionenum;
    20                 int         local;     
    2120                int         model_enum;
    2221                char*       name;
    2322                int         observation_enum;
    24                 char*       timeinterpolation;
    2523                int         weights_enum;
    2624                IssmDouble      datatime;
Note: See TracChangeset for help on using the changeset viewer.