source: issm/oecreview/Archive/24307-24683/ISSM-24377-24378.diff@ 24684

Last change on this file since 24684 was 24684, checked in by Mathieu Morlighem, 5 years ago

CHG: added new review

File size: 12.4 KB
  • ../trunk-jpl/src/c/classes/FemModel.cpp

     
    17631763        maxabsvx=-INFINITY;
    17641764        for(i=0;i<this->elements->Size();i++){
    17651765                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1766                 element_maxabsvx=element->inputs->MaxAbs(VxEnum);
     1766                Input2*  input = element->GetInput2(VxEnum);
     1767                element_maxabsvx=input->GetInputMaxAbs();
    17671768                if(element_maxabsvx>maxabsvx) maxabsvx=element_maxabsvx;
    17681769        }
    17691770
     
    17871788        maxabsvy=-INFINITY;
    17881789        for(i=0;i<this->elements->Size();i++){
    17891790                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1790                 element_maxabsvy=element->inputs->MaxAbs(VyEnum);
     1791                Input2*  input = element->GetInput2(VyEnum);
     1792                element_maxabsvy=input->GetInputMaxAbs();
    17911793                if(element_maxabsvy>maxabsvy) maxabsvy=element_maxabsvy;
    17921794        }
    17931795
     
    18111813        maxabsvz=-INFINITY;
    18121814        for(i=0;i<this->elements->Size();i++){
    18131815                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1814                 element_maxabsvz=element->inputs->MaxAbs(VzEnum);
     1816                Input2*  input = element->GetInput2(VzEnum);
     1817                element_maxabsvz=input->GetInputMaxAbs();
    18151818                if(element_maxabsvz>maxabsvz) maxabsvz=element_maxabsvz;
    18161819        }
    18171820
     
    19541957        minvel=INFINITY;
    19551958        for(i=0;i<this->elements->Size();i++){
    19561959                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1957                 element_minvel = element->inputs->Min(VelEnum);
     1960                Input2*  input = element->GetInput2(VelEnum);
     1961                element_minvel =input->GetInputMin();
    19581962                if(element_minvel<minvel) minvel=element_minvel;
    19591963        }
    19601964
     
    19781982        minvx=INFINITY;
    19791983        for(i=0;i<this->elements->Size();i++){
    19801984                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    1981                 element_minvx = element->inputs->Min(VxEnum);
     1985                Input2*  input = element->GetInput2(VxEnum);
     1986                element_minvx =input->GetInputMin();
    19821987                if(element_minvx<minvx) minvx=element_minvx;
    19831988        }
    19841989
     
    20022007        minvy=INFINITY;
    20032008        for(i=0;i<this->elements->Size();i++){
    20042009                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    2005                 element_minvy = element->inputs->Min(VyEnum);
     2010                Input2*  input = element->GetInput2(VyEnum);
     2011                element_minvy =input->GetInputMin();
    20062012                if(element_minvy<minvy) minvy=element_minvy;
    20072013        }
    20082014
     
    20262032        minvz=INFINITY;
    20272033        for(i=0;i<this->elements->Size();i++){
    20282034                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
    2029                 element_minvz = element->inputs->Min(VzEnum);
     2035                Input2*  input = element->GetInput2(VzEnum);
     2036                element_minvz =input->GetInputMin();
    20302037                if(element_minvz<minvz) minvz=element_minvz;
    20312038        }
    20322039
     
    36363643                        newtria->isonsurface = true;
    36373644                        newtria->isonbase = true;
    36383645                        newtria->parameters=NULL;
    3639                         newtria->inputs=new Inputs();
     3646                        newtria->inputs2=NULL;
    36403647                        newtria->nodes=NULL;
    36413648                        newtria->vertices=NULL;
    36423649                        newtria->material=NULL;
  • ../trunk-jpl/src/c/classes/Elements/Element.h

     
    4343                int          id;
    4444                int          sid;
    4545                int          lid;
    46                 Inputs      *inputs;
    4746                Inputs2     *inputs2;
    4847                Node       **nodes;
    4948                Vertex     **vertices;
     
    6867                void               ComputeStrainRate();
    6968                void               CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array);
    7069                void               DeepEcho();
    71                 void               DeleteInput(int input_enum);
    7270                void               DeleteMaterials(void);
    7371                void               Delta18oParameterization(void);
    7472                void               Delta18opdParameterization(void);
  • ../trunk-jpl/src/c/classes/Elements/Tria.cpp

     
    4242                /*this->parameters: we still can't point to it, it may not even exist. Configure will handle this.*/
    4343                this->parameters = NULL;
    4444
    45                 /*intialize inputs: */
    46                 this->inputs  = new Inputs();
    47 
    4845                /*initialize pointers:*/
    4946                this->nodes    = NULL;
    5047                this->vertices = NULL;
     
    125122        tria->id  = this->id;
    126123        tria->sid = this->sid;
    127124        tria->lid = this->lid;
    128         if(this->inputs) tria->inputs = (Inputs*)(this->inputs->Copy());
    129         else tria->inputs=new Inputs();
    130125        tria->isonbase  = this->isonbase;
    131126        tria->isonsurface  = this->isonsurface;
    132127
     
    10971092        /*point parameters to real dataset: */
    10981093        this->parameters=parametersin;
    10991094        this->inputs2=inputs2in;
    1100 
    1101         /*get inputs configured too: */
    1102         this->inputs->Configure(this->parameters);
    1103 
    11041095}/*}}}*/
    11051096void       Tria::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N, int M){/*{{{*/
    11061097
     
    31143105
    31153106        /*Add new input to current element*/
    31163107        _error_("not implemented");
    3117         this->inputs->AddInput((Input*)newinput);
    31183108}
    31193109/*}}}*/
    31203110void       Tria::InputUpdateFromIoModel(int index, IoModel* iomodel){ //i is the element index/*{{{*/
     
    41154105        seg->id=this->id;
    41164106        seg->sid=this->sid;
    41174107        seg->lid=this->lid;
    4118         seg->inputs=NULL;//(Inputs*)this->inputs->SpawnSegInputs(index1,index2);
    41194108        seg->inputs2=this->inputs2;
    41204109        seg->parameters=this->parameters;
    41214110        seg->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED)
  • ../trunk-jpl/src/c/classes/Elements/Penta.cpp

     
    5555        //this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
    5656        this->parameters=NULL;
    5757
    58         /*intialize inputs: */
    59         this->inputs=new Inputs();
    60 
    6158        /*initialize pointers:*/
    6259        this->nodes             = NULL;
    6360        this->vertices          = NULL;
     
    121118        penta->id  = this->id;
    122119        penta->sid = this->sid;
    123120        penta->lid = this->lid;
    124         if(this->inputs) penta->inputs = (Inputs*)(this->inputs->Copy());
    125         else penta->inputs=new Inputs();
    126121        penta->isonbase  = this->isonbase;
    127122        penta->isonsurface  = this->isonsurface;
    128123
     
    900895        /*point parameters to real dataset: */
    901896        this->parameters=parametersin;
    902897        this->inputs2=inputs2in;
    903 
    904         /*get inputs configured too: */
    905         this->inputs->Configure(parameters);
    906898}
    907899/*}}}*/
    908900void       Penta::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N,int M){/*{{{*/
     
    27272719        mass_flux=tria->MassFlux(segment);
    27282720        delete tria->material; delete tria;
    27292721
    2730         /*Delete Vx and Vy averaged*/
    2731         this->inputs->DeleteInput(VxAverageEnum);
    2732         this->inputs->DeleteInput(VyAverageEnum);
    2733 
    27342722        /*clean up and return*/
    27352723        return mass_flux;
    27362724}
     
    27502738        mass_flux=tria->MassFlux(x1,y1,x2,y2,segment_id);
    27512739        delete tria->material; delete tria;
    27522740
    2753         /*Delete Vx and Vy averaged*/
    2754         this->inputs->DeleteInput(VxAverageEnum);
    2755         this->inputs->DeleteInput(VyAverageEnum);
    2756 
    27572741        /*clean up and return*/
    27582742        return mass_flux;
    27592743}
     
    34033387        if(this->GetInput2(CalvingrateyEnum)) this->InputDepthAverageAtBase(CalvingrateyEnum,CalvingrateyAverageEnum);
    34043388
    34053389        Tria* tria=(Tria*)SpawnTria(0,1,2);
    3406         switch(this->material->ObjectEnum()){
    3407                 case MaticeEnum:
    3408                         this->inputs->DeleteInput(MaterialsRheologyBbarEnum);
    3409                         this->inputs->DeleteInput(DamageDbarEnum);
    3410                         break;
    3411                 case MatestarEnum:
    3412                         break;
    3413                 default:
    3414                         _error_("not supported yet");
    3415         }
    3416         this->inputs->DeleteInput(VxAverageEnum);
    3417         this->inputs->DeleteInput(VyAverageEnum);
    3418         this->inputs->DeleteInput(CalvingratexAverageEnum);
    3419         this->inputs->DeleteInput(CalvingrateyAverageEnum);
    34203390
    34213391        return tria;
    34223392}
     
    34423412        tria->id=this->id;
    34433413        tria->sid=this->sid;
    34443414        tria->lid=this->lid;
    3445         tria->inputs=NULL;//(Inputs*)this->inputs->SpawnTriaInputs(index1,index2,index3);
    34463415        tria->parameters=this->parameters;
    34473416        tria->inputs2=this->inputs2;
    34483417        tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED)
  • ../trunk-jpl/src/c/classes/Elements/Seg.cpp

     
    3939                        //this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
    4040                        this->parameters = NULL;
    4141
    42                         /*intialize inputs: */
    43                         this->inputs  = new Inputs();
    44 
    4542                        /*initialize pointers:*/
    4643                        this->nodes    = NULL;
    4744                        this->vertices = NULL;
     
    10198        seg->id  = this->id;
    10299        seg->sid = this->sid;
    103100        seg->lid = this->lid;
    104         if(this->inputs) seg->inputs = (Inputs*)(this->inputs->Copy());
    105         else seg->inputs=new Inputs();
    106101        seg->isonbase  = this->isonbase;
    107102        seg->isonsurface  = this->isonsurface;
    108103
  • ../trunk-jpl/src/c/classes/Elements/Tetra.cpp

     
    3535                        //this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
    3636                        this->parameters = NULL;
    3737
    38                         /*intialize inputs: */
    39                         this->inputs  = new Inputs();
    40 
    4138                        /*initialize pointers:*/
    4239                        this->nodes    = NULL;
    4340                        this->vertices = NULL;
     
    103100        tetra->id  = this->id;
    104101        tetra->sid = this->sid;
    105102        tetra->lid = this->lid;
    106         if(this->inputs) tetra->inputs = (Inputs*)(this->inputs->Copy());
    107         else tetra->inputs=new Inputs();
    108103        tetra->isonbase  = this->isonbase;
    109104        tetra->isonsurface  = this->isonsurface;
    110105
     
    164159        /*point parameters to real dataset: */
    165160        this->parameters=parametersin;
    166161        this->inputs2=inputs2in;
    167 
    168         /*get inputs configured too: */
    169         this->inputs->Configure(parameters);
    170162}
    171163/*}}}*/
    172164void     Tetra::ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){/*{{{*/
     
    657649        IssmDouble   xz_plane[6];
    658650
    659651        /*For FS only: we want the CS to be tangential to the bedrock*/
    660         inputs->GetInputValue(&approximation,ApproximationEnum);
     652        this->GetInput2Value(&approximation,ApproximationEnum);
    661653        if(!HasNodeOnBase() ||  approximation!=FSApproximationEnum) return;
    662654
    663655        //printf("element number %i \n",this->id);
     
    762754        /*Create Tria*/
    763755        Tria* tria=new Tria();
    764756        tria->id=this->id;
    765         tria->inputs=(Inputs*)this->inputs->SpawnTriaInputs(index1,index2,index3);
    766757        tria->parameters=this->parameters;
    767758        tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED)
    768759        this->SpawnTriaHook(xDynamicCast<ElementHook*>(tria),index1,index2,index3);
  • ../trunk-jpl/src/c/classes/Elements/Element.cpp

     
    3333        this->id  = -1;
    3434        this->sid = -1;
    3535        this->lid = -1;
    36         this->inputs     = NULL;
    3736        this->inputs2    = NULL;
    3837        this->nodes      = NULL;
    3938        this->vertices   = NULL;
     
    4342}/*}}}*/
    4443Element::~Element(){/*{{{*/
    4544        xDelete<int>(element_type_list);
    46         delete inputs;
    4745}
    4846/*}}}*/
    4947
     
    410408        else _printf_("parameters = NULL\n");
    411409
    412410        _printf_("   inputs\n");
    413         if (inputs) inputs->DeepEcho();
    414         else _printf_("inputs=NULL\n");
     411        if(inputs2) inputs2->DeepEcho();
     412        else _printf_("inputs2=NULL\n");
    415413
    416414        return;
    417415}
    418416/*}}}*/
    419 void       Element::DeleteInput(int input_enum){/*{{{*/
    420 
    421         inputs->DeleteInput(input_enum);
    422 
    423 }
    424 /*}}}*/
    425417void       Element::DeleteMaterials(void){/*{{{*/
    426418        delete this->material;
    427419}/*}}}*/
     
    933925        else _printf_("parameters = NULL\n");
    934926
    935927        _printf_("   inputs\n");
    936         if (inputs) inputs->Echo();
    937         else _printf_("inputs=NULL\n");
     928        if (inputs2) inputs2->Echo();
     929        else _printf_("inputs2=NULL\n");
    938930}
    939931/*}}}*/
    940932void       Element::FindParam(bool* pvalue,int paramenum){/*{{{*/
     
    23062298
    23072299        _assert_(this);
    23082300        if(marshall_direction==MARSHALLING_BACKWARD){
    2309                 inputs=new Inputs();
    23102301                nodes = NULL;
    23112302        }
    23122303
     
    23172308        MARSHALLING(lid);
    23182309        MARSHALLING(element_type);
    23192310        MARSHALLING_DYNAMIC(element_type_list,int,numanalyses);
    2320         inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
    2321 
    23222311}
    23232312/*}}}*/
    23242313void       Element::MigrateGroundingLine(IssmDouble* phi_ungrounding){/*{{{*/
Note: See TracBrowser for help on using the repository browser.