Index: ../trunk-jpl/src/c/classes/FemModel.cpp =================================================================== --- ../trunk-jpl/src/c/classes/FemModel.cpp (revision 24377) +++ ../trunk-jpl/src/c/classes/FemModel.cpp (revision 24378) @@ -1763,7 +1763,8 @@ maxabsvx=-INFINITY; for(i=0;ielements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_maxabsvx=element->inputs->MaxAbs(VxEnum); + Input2* input = element->GetInput2(VxEnum); + element_maxabsvx=input->GetInputMaxAbs(); if(element_maxabsvx>maxabsvx) maxabsvx=element_maxabsvx; } @@ -1787,7 +1788,8 @@ maxabsvy=-INFINITY; for(i=0;ielements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_maxabsvy=element->inputs->MaxAbs(VyEnum); + Input2* input = element->GetInput2(VyEnum); + element_maxabsvy=input->GetInputMaxAbs(); if(element_maxabsvy>maxabsvy) maxabsvy=element_maxabsvy; } @@ -1811,7 +1813,8 @@ maxabsvz=-INFINITY; for(i=0;ielements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_maxabsvz=element->inputs->MaxAbs(VzEnum); + Input2* input = element->GetInput2(VzEnum); + element_maxabsvz=input->GetInputMaxAbs(); if(element_maxabsvz>maxabsvz) maxabsvz=element_maxabsvz; } @@ -1954,7 +1957,8 @@ minvel=INFINITY; for(i=0;ielements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_minvel = element->inputs->Min(VelEnum); + Input2* input = element->GetInput2(VelEnum); + element_minvel =input->GetInputMin(); if(element_minvelelements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_minvx = element->inputs->Min(VxEnum); + Input2* input = element->GetInput2(VxEnum); + element_minvx =input->GetInputMin(); if(element_minvxelements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_minvy = element->inputs->Min(VyEnum); + Input2* input = element->GetInput2(VyEnum); + element_minvy =input->GetInputMin(); if(element_minvyelements->Size();i++){ Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); - element_minvz = element->inputs->Min(VzEnum); + Input2* input = element->GetInput2(VzEnum); + element_minvz =input->GetInputMin(); if(element_minvzisonsurface = true; newtria->isonbase = true; newtria->parameters=NULL; - newtria->inputs=new Inputs(); + newtria->inputs2=NULL; newtria->nodes=NULL; newtria->vertices=NULL; newtria->material=NULL; Index: ../trunk-jpl/src/c/classes/Elements/Element.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Element.h (revision 24377) +++ ../trunk-jpl/src/c/classes/Elements/Element.h (revision 24378) @@ -43,7 +43,6 @@ int id; int sid; int lid; - Inputs *inputs; Inputs2 *inputs2; Node **nodes; Vertex **vertices; @@ -68,7 +67,6 @@ void ComputeStrainRate(); void CoordinateSystemTransform(IssmDouble** ptransform,Node** nodes,int numnodes,int* cs_array); void DeepEcho(); - void DeleteInput(int input_enum); void DeleteMaterials(void); void Delta18oParameterization(void); void Delta18opdParameterization(void); Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 24377) +++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 24378) @@ -42,9 +42,6 @@ /*this->parameters: we still can't point to it, it may not even exist. Configure will handle this.*/ this->parameters = NULL; - /*intialize inputs: */ - this->inputs = new Inputs(); - /*initialize pointers:*/ this->nodes = NULL; this->vertices = NULL; @@ -125,8 +122,6 @@ tria->id = this->id; tria->sid = this->sid; tria->lid = this->lid; - if(this->inputs) tria->inputs = (Inputs*)(this->inputs->Copy()); - else tria->inputs=new Inputs(); tria->isonbase = this->isonbase; tria->isonsurface = this->isonsurface; @@ -1097,10 +1092,6 @@ /*point parameters to real dataset: */ this->parameters=parametersin; this->inputs2=inputs2in; - - /*get inputs configured too: */ - this->inputs->Configure(this->parameters); - }/*}}}*/ void Tria::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N, int M){/*{{{*/ @@ -3114,7 +3105,6 @@ /*Add new input to current element*/ _error_("not implemented"); - this->inputs->AddInput((Input*)newinput); } /*}}}*/ void Tria::InputUpdateFromIoModel(int index, IoModel* iomodel){ //i is the element index/*{{{*/ @@ -4115,7 +4105,6 @@ seg->id=this->id; seg->sid=this->sid; seg->lid=this->lid; - seg->inputs=NULL;//(Inputs*)this->inputs->SpawnSegInputs(index1,index2); seg->inputs2=this->inputs2; seg->parameters=this->parameters; seg->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 24377) +++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 24378) @@ -55,9 +55,6 @@ //this->parameters: we still can't point to it, it may not even exist. Configure will handle this. this->parameters=NULL; - /*intialize inputs: */ - this->inputs=new Inputs(); - /*initialize pointers:*/ this->nodes = NULL; this->vertices = NULL; @@ -121,8 +118,6 @@ penta->id = this->id; penta->sid = this->sid; penta->lid = this->lid; - if(this->inputs) penta->inputs = (Inputs*)(this->inputs->Copy()); - else penta->inputs=new Inputs(); penta->isonbase = this->isonbase; penta->isonsurface = this->isonsurface; @@ -900,9 +895,6 @@ /*point parameters to real dataset: */ this->parameters=parametersin; this->inputs2=inputs2in; - - /*get inputs configured too: */ - this->inputs->Configure(parameters); } /*}}}*/ void Penta::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index,int offset,int N,int M){/*{{{*/ @@ -2727,10 +2719,6 @@ mass_flux=tria->MassFlux(segment); delete tria->material; delete tria; - /*Delete Vx and Vy averaged*/ - this->inputs->DeleteInput(VxAverageEnum); - this->inputs->DeleteInput(VyAverageEnum); - /*clean up and return*/ return mass_flux; } @@ -2750,10 +2738,6 @@ mass_flux=tria->MassFlux(x1,y1,x2,y2,segment_id); delete tria->material; delete tria; - /*Delete Vx and Vy averaged*/ - this->inputs->DeleteInput(VxAverageEnum); - this->inputs->DeleteInput(VyAverageEnum); - /*clean up and return*/ return mass_flux; } @@ -3403,20 +3387,6 @@ if(this->GetInput2(CalvingrateyEnum)) this->InputDepthAverageAtBase(CalvingrateyEnum,CalvingrateyAverageEnum); Tria* tria=(Tria*)SpawnTria(0,1,2); - switch(this->material->ObjectEnum()){ - case MaticeEnum: - this->inputs->DeleteInput(MaterialsRheologyBbarEnum); - this->inputs->DeleteInput(DamageDbarEnum); - break; - case MatestarEnum: - break; - default: - _error_("not supported yet"); - } - this->inputs->DeleteInput(VxAverageEnum); - this->inputs->DeleteInput(VyAverageEnum); - this->inputs->DeleteInput(CalvingratexAverageEnum); - this->inputs->DeleteInput(CalvingrateyAverageEnum); return tria; } @@ -3442,7 +3412,6 @@ tria->id=this->id; tria->sid=this->sid; tria->lid=this->lid; - tria->inputs=NULL;//(Inputs*)this->inputs->SpawnTriaInputs(index1,index2,index3); tria->parameters=this->parameters; tria->inputs2=this->inputs2; tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) Index: ../trunk-jpl/src/c/classes/Elements/Seg.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Seg.cpp (revision 24377) +++ ../trunk-jpl/src/c/classes/Elements/Seg.cpp (revision 24378) @@ -39,9 +39,6 @@ //this->parameters: we still can't point to it, it may not even exist. Configure will handle this. this->parameters = NULL; - /*intialize inputs: */ - this->inputs = new Inputs(); - /*initialize pointers:*/ this->nodes = NULL; this->vertices = NULL; @@ -101,8 +98,6 @@ seg->id = this->id; seg->sid = this->sid; seg->lid = this->lid; - if(this->inputs) seg->inputs = (Inputs*)(this->inputs->Copy()); - else seg->inputs=new Inputs(); seg->isonbase = this->isonbase; seg->isonsurface = this->isonsurface; Index: ../trunk-jpl/src/c/classes/Elements/Tetra.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tetra.cpp (revision 24377) +++ ../trunk-jpl/src/c/classes/Elements/Tetra.cpp (revision 24378) @@ -35,9 +35,6 @@ //this->parameters: we still can't point to it, it may not even exist. Configure will handle this. this->parameters = NULL; - /*intialize inputs: */ - this->inputs = new Inputs(); - /*initialize pointers:*/ this->nodes = NULL; this->vertices = NULL; @@ -103,8 +100,6 @@ tetra->id = this->id; tetra->sid = this->sid; tetra->lid = this->lid; - if(this->inputs) tetra->inputs = (Inputs*)(this->inputs->Copy()); - else tetra->inputs=new Inputs(); tetra->isonbase = this->isonbase; tetra->isonsurface = this->isonsurface; @@ -164,9 +159,6 @@ /*point parameters to real dataset: */ this->parameters=parametersin; this->inputs2=inputs2in; - - /*get inputs configured too: */ - this->inputs->Configure(parameters); } /*}}}*/ void Tetra::ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){/*{{{*/ @@ -657,7 +649,7 @@ IssmDouble xz_plane[6]; /*For FS only: we want the CS to be tangential to the bedrock*/ - inputs->GetInputValue(&approximation,ApproximationEnum); + this->GetInput2Value(&approximation,ApproximationEnum); if(!HasNodeOnBase() || approximation!=FSApproximationEnum) return; //printf("element number %i \n",this->id); @@ -762,7 +754,6 @@ /*Create Tria*/ Tria* tria=new Tria(); tria->id=this->id; - tria->inputs=(Inputs*)this->inputs->SpawnTriaInputs(index1,index2,index3); tria->parameters=this->parameters; tria->element_type=P1Enum; //Only P1 CG for now (TO BE CHANGED) this->SpawnTriaHook(xDynamicCast(tria),index1,index2,index3); Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 24377) +++ ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 24378) @@ -33,7 +33,6 @@ this->id = -1; this->sid = -1; this->lid = -1; - this->inputs = NULL; this->inputs2 = NULL; this->nodes = NULL; this->vertices = NULL; @@ -43,7 +42,6 @@ }/*}}}*/ Element::~Element(){/*{{{*/ xDelete(element_type_list); - delete inputs; } /*}}}*/ @@ -410,18 +408,12 @@ else _printf_("parameters = NULL\n"); _printf_(" inputs\n"); - if (inputs) inputs->DeepEcho(); - else _printf_("inputs=NULL\n"); + if(inputs2) inputs2->DeepEcho(); + else _printf_("inputs2=NULL\n"); return; } /*}}}*/ -void Element::DeleteInput(int input_enum){/*{{{*/ - - inputs->DeleteInput(input_enum); - -} -/*}}}*/ void Element::DeleteMaterials(void){/*{{{*/ delete this->material; }/*}}}*/ @@ -933,8 +925,8 @@ else _printf_("parameters = NULL\n"); _printf_(" inputs\n"); - if (inputs) inputs->Echo(); - else _printf_("inputs=NULL\n"); + if (inputs2) inputs2->Echo(); + else _printf_("inputs2=NULL\n"); } /*}}}*/ void Element::FindParam(bool* pvalue,int paramenum){/*{{{*/ @@ -2306,7 +2298,6 @@ _assert_(this); if(marshall_direction==MARSHALLING_BACKWARD){ - inputs=new Inputs(); nodes = NULL; } @@ -2317,8 +2308,6 @@ MARSHALLING(lid); MARSHALLING(element_type); MARSHALLING_DYNAMIC(element_type_list,int,numanalyses); - inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction); - } /*}}}*/ void Element::MigrateGroundingLine(IssmDouble* phi_ungrounding){/*{{{*/