Changeset 22519
- Timestamp:
- 03/11/18 09:13:55 (7 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Inputs
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h
r21974 r22519 57 57 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 58 58 int GetInputInterpolationType(){_error_("not implemented yet!");}; 59 IssmDouble InfinityNorm(void){_error_("InfinityNorm not implemented for booleans");};60 59 IssmDouble Max(void){_error_("Max not implemented for booleans");}; 61 60 IssmDouble MaxAbs(void){_error_("Max not implemented for booleans");}; -
issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h
r22515 r22519 67 67 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist,const char* data); 68 68 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 69 IssmDouble InfinityNorm(void){_error_("not implemented yet");};70 69 IssmDouble Max(void){_error_("not implemented yet");}; 71 70 IssmDouble MaxAbs(void){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h
r21974 r22519 63 63 int GetResultNumberOfNodes(void){_error_("not implemented yet");}; 64 64 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");}; 65 IssmDouble InfinityNorm(void){_error_("not implemented yet");};66 65 IssmDouble Max(void){_error_("not implemented yet");}; 67 66 IssmDouble MaxAbs(void){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h
r21974 r22519 59 59 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");}; 60 60 int GetInputInterpolationType(){_error_("not implemented yet!");}; 61 IssmDouble InfinityNorm(void){_error_("not implemented yet");};62 61 IssmDouble Max(void){_error_("not implemented yet");}; 63 62 IssmDouble MaxAbs(void){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h
r21974 r22519 60 60 int GetInputInterpolationType(){return P0Enum; }; 61 61 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 62 IssmDouble InfinityNorm(void){_error_("not implemented yet");};63 62 IssmDouble Max(void); 64 63 IssmDouble MaxAbs(void); -
issm/trunk-jpl/src/c/classes/Inputs/Input.h
r21974 r22519 44 44 virtual void Extrude(int start)=0; 45 45 virtual void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist)=0; 46 virtual IssmDouble InfinityNorm(void)=0;47 46 virtual IssmDouble Max(void)=0; 48 47 virtual IssmDouble MaxAbs(void)=0; -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
r22518 r22519 254 254 } 255 255 /*}}}*/ 256 IssmDouble Inputs::InfinityNorm(int enumtype){/*{{{*/257 258 /*Output*/259 IssmDouble norm;260 261 /*Get input*/262 Input* input=xDynamicCast<Input*>(this->GetInput(enumtype));263 264 /*Apply ContrainMin: */265 if (input){266 norm=input->InfinityNorm();267 }268 else{269 norm=0;270 }271 272 /*Return output*/273 return norm;274 }275 /*}}}*/276 256 IssmDouble Inputs::Max(int enumtype){/*{{{*/ 277 257 -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.h
r22518 r22519 33 33 void GetInputValue(int* pvalue,int enum_type); 34 34 void GetInputValue(IssmDouble* pvalue,int enum_type); 35 IssmDouble InfinityNorm(int enumtype);36 35 IssmDouble Max(int enumtype); 37 36 IssmDouble MaxAbs(int enumtype); -
issm/trunk-jpl/src/c/classes/Inputs/IntInput.h
r21974 r22519 61 61 int GetInputInterpolationType(){_error_("not implemented yet!");}; 62 62 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 63 IssmDouble InfinityNorm(void){_error_("InfinityNorm not implemented for integers");};64 63 IssmDouble Max(void){_error_("Max not implemented for integers");}; 65 64 IssmDouble MaxAbs(void){_error_("Max not implemented for integers");}; -
issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
r22075 r22519 275 275 vector->SetValues(numvertices,doflist,this->values,INS_VAL); 276 276 } /*}}}*/ 277 IssmDouble PentaInput::InfinityNorm(void){/*{{{*/278 279 /*Output*/280 IssmDouble norm=0.;281 int numnodes=this->NumberofNodes(this->interpolation_type);282 283 for(int i=0;i<numnodes;i++) if(fabs(values[i])>norm) norm=fabs(values[i]);284 return norm;285 }286 /*}}}*/287 277 IssmDouble PentaInput::Max(void){/*{{{*/ 288 278 -
issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h
r21974 r22519 59 59 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 60 60 int GetInputInterpolationType(){_error_("not implemented yet!");}; 61 IssmDouble InfinityNorm(void);62 61 IssmDouble Max(void); 63 62 IssmDouble MaxAbs(void); -
issm/trunk-jpl/src/c/classes/Inputs/SegInput.h
r21974 r22519 62 62 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");}; 63 63 int GetInputInterpolationType(){_error_("not implemented yet!");}; 64 IssmDouble InfinityNorm(void){_error_("not implemented yet");};65 64 IssmDouble Max(void); 66 65 IssmDouble MaxAbs(void){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp
r21974 r22519 242 242 vector->SetValues(numvertices,doflist,this->values,INS_VAL); 243 243 } /*}}}*/ 244 IssmDouble TetraInput::InfinityNorm(void){/*{{{*/245 246 /*Output*/247 IssmDouble norm=0.;248 int numnodes=this->NumberofNodes(this->interpolation_type);249 250 for(int i=0;i<numnodes;i++) if(fabs(values[i])>norm) norm=fabs(values[i]);251 return norm;252 }253 /*}}}*/254 244 IssmDouble TetraInput::MinAbs(void){/*{{{*/ 255 245 -
issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h
r21974 r22519 62 62 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 63 63 int GetInputInterpolationType(){_error_("not implemented yet!");}; 64 IssmDouble InfinityNorm(void);65 64 IssmDouble Max(void); 66 65 IssmDouble MaxAbs(void); -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
r22285 r22519 528 528 529 529 } /*}}}*/ 530 IssmDouble TransientInput:: InfinityNorm(void){/*{{{*/531 532 IssmDouble time; 533 IssmDouble infnorm;530 IssmDouble TransientInput::Max(void){/*{{{*/ 531 532 IssmDouble time; 533 IssmDouble max; 534 534 535 535 /*First, recover current time from parameters: */ … … 540 540 541 541 /*Call input function*/ 542 infnorm=input->InfinityNorm(); 542 max=input->Max(); 543 544 delete input; 545 546 return max; 547 } 548 /*}}}*/ 549 IssmDouble TransientInput::MaxAbs(void){/*{{{*/ 550 551 IssmDouble time; 552 IssmDouble maxabs; 553 554 /*First, recover current time from parameters: */ 555 parameters->FindParam(&time,TimeEnum); 556 557 /*Retrieve interpolated values for this time step: */ 558 Input* input=GetTimeInput(time); 559 560 /*Call input function*/ 561 maxabs=input->MaxAbs(); 543 562 544 563 /*Clean-up and return*/ 545 564 delete input; 546 return infnorm; 547 } 548 /*}}}*/ 549 IssmDouble TransientInput::Max(void){/*{{{*/ 550 551 IssmDouble time; 552 IssmDouble max; 565 return maxabs; 566 567 } 568 /*}}}*/ 569 IssmDouble TransientInput::Min(void){/*{{{*/ 570 571 IssmDouble time; 572 IssmDouble min; 553 573 554 574 /*First, recover current time from parameters: */ … … 559 579 560 580 /*Call input function*/ 561 max=input->Max(); 562 563 delete input; 564 565 return max; 566 } 567 /*}}}*/ 568 IssmDouble TransientInput::MaxAbs(void){/*{{{*/ 569 570 IssmDouble time; 571 IssmDouble maxabs; 581 min=input->Min(); 582 583 /*Clean-up and return*/ 584 delete input; 585 return min; 586 587 } 588 /*}}}*/ 589 IssmDouble TransientInput::MinAbs(void){/*{{{*/ 590 591 IssmDouble time; 592 IssmDouble minabs; 572 593 573 594 /*First, recover current time from parameters: */ … … 578 599 579 600 /*Call input function*/ 580 m axabs=input->MaxAbs();601 minabs=input->MinAbs(); 581 602 582 603 /*Clean-up and return*/ 583 604 delete input; 584 return maxabs;585 586 }587 /*}}}*/588 IssmDouble TransientInput::Min(void){/*{{{*/589 590 IssmDouble time;591 IssmDouble min;592 593 /*First, recover current time from parameters: */594 parameters->FindParam(&time,TimeEnum);595 596 /*Retrieve interpolated values for this time step: */597 Input* input=GetTimeInput(time);598 599 /*Call input function*/600 min=input->Min();601 602 /*Clean-up and return*/603 delete input;604 return min;605 606 }607 /*}}}*/608 IssmDouble TransientInput::MinAbs(void){/*{{{*/609 610 IssmDouble time;611 IssmDouble minabs;612 613 /*First, recover current time from parameters: */614 parameters->FindParam(&time,TimeEnum);615 616 /*Retrieve interpolated values for this time step: */617 Input* input=GetTimeInput(time);618 619 /*Call input function*/620 minabs=input->MinAbs();621 622 /*Clean-up and return*/623 delete input;624 605 return minabs; 625 606 } -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h
r22277 r22519 71 71 void GetTimeValues(IssmDouble* values,IssmDouble time){_error_("not implemented yet");}; 72 72 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 73 IssmDouble InfinityNorm(void);74 73 IssmDouble Max(void); 75 74 IssmDouble MaxAbs(void); -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
r22277 r22519 276 276 vector->SetValues(numvertices,doflist,this->values,INS_VAL); 277 277 } /*}}}*/ 278 IssmDouble TriaInput::InfinityNorm(void){/*{{{*/279 280 /*Output*/281 IssmDouble norm=0.;282 int numnodes=this->NumberofNodes(this->interpolation_type);283 284 for(int i=0;i<numnodes;i++) if(fabs(values[i])>norm) norm=fabs(values[i]);285 return norm;286 }287 /*}}}*/288 278 IssmDouble TriaInput::Max(void){/*{{{*/ 289 279 -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h
r21974 r22519 62 62 int GetInputInterpolationType(){return interpolation_type;}; 63 63 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 64 IssmDouble InfinityNorm(void);65 64 IssmDouble Max(void); 66 65 IssmDouble MaxAbs(void);
Note:
See TracChangeset
for help on using the changeset viewer.