Changeset 11291 for issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.cpp
- Timestamp:
- 02/01/12 13:47:42 (13 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.cpp
r11288 r11291 1 /*!\file Tria VertexInput.c2 * \brief: implementation of the Tria VertexInput object1 /*!\file TriaP1Input.c 2 * \brief: implementation of the TriaP1Input object 3 3 */ 4 4 … … 17 17 #include "../../include/include.h" 18 18 19 /*Tria VertexInput constructors and destructor*/20 /*FUNCTION Tria VertexInput::TriaVertexInput(){{{1*/21 Tria VertexInput::TriaVertexInput(){19 /*TriaP1Input constructors and destructor*/ 20 /*FUNCTION TriaP1Input::TriaP1Input(){{{1*/ 21 TriaP1Input::TriaP1Input(){ 22 22 return; 23 23 } 24 24 /*}}}*/ 25 /*FUNCTION Tria VertexInput::TriaVertexInput(int in_enum_type,double* values){{{1*/26 Tria VertexInput::TriaVertexInput(int in_enum_type,double* in_values)25 /*FUNCTION TriaP1Input::TriaP1Input(int in_enum_type,double* values){{{1*/ 26 TriaP1Input::TriaP1Input(int in_enum_type,double* in_values) 27 27 :TriaRef(1) 28 28 { … … 41 41 } 42 42 /*}}}*/ 43 /*FUNCTION Tria VertexInput::~TriaVertexInput(){{{1*/44 Tria VertexInput::~TriaVertexInput(){43 /*FUNCTION TriaP1Input::~TriaP1Input(){{{1*/ 44 TriaP1Input::~TriaP1Input(){ 45 45 return; 46 46 } … … 48 48 49 49 /*Object virtual functions definitions:*/ 50 /*FUNCTION Tria VertexInput::Echo {{{1*/51 void Tria VertexInput::Echo(void){50 /*FUNCTION TriaP1Input::Echo {{{1*/ 51 void TriaP1Input::Echo(void){ 52 52 this->DeepEcho(); 53 53 } 54 54 /*}}}*/ 55 /*FUNCTION Tria VertexInput::DeepEcho{{{1*/56 void Tria VertexInput::DeepEcho(void){57 58 printf("Tria VertexInput:\n");55 /*FUNCTION TriaP1Input::DeepEcho{{{1*/ 56 void TriaP1Input::DeepEcho(void){ 57 58 printf("TriaP1Input:\n"); 59 59 printf(" enum: %i (%s)\n",this->enum_type,EnumToStringx(this->enum_type)); 60 60 printf(" values: [%g %g %g]\n",this->values[0],this->values[1],this->values[2]); 61 61 } 62 62 /*}}}*/ 63 /*FUNCTION Tria VertexInput::Id{{{1*/64 int Tria VertexInput::Id(void){ return -1; }65 /*}}}*/ 66 /*FUNCTION Tria VertexInput::MyRank{{{1*/67 int Tria VertexInput::MyRank(void){63 /*FUNCTION TriaP1Input::Id{{{1*/ 64 int TriaP1Input::Id(void){ return -1; } 65 /*}}}*/ 66 /*FUNCTION TriaP1Input::MyRank{{{1*/ 67 int TriaP1Input::MyRank(void){ 68 68 extern int my_rank; 69 69 return my_rank; … … 71 71 /*}}}*/ 72 72 #ifdef _SERIAL_ 73 /*FUNCTION Tria VertexInput::Marshall{{{1*/74 void Tria VertexInput::Marshall(char** pmarshalled_dataset){73 /*FUNCTION TriaP1Input::Marshall{{{1*/ 74 void TriaP1Input::Marshall(char** pmarshalled_dataset){ 75 75 76 76 char* marshalled_dataset=NULL; … … 80 80 marshalled_dataset=*pmarshalled_dataset; 81 81 82 /*get enum value of Tria VertexInput: */83 enum_value=Tria VertexInputEnum;82 /*get enum value of TriaP1Input: */ 83 enum_value=TriaP1InputEnum; 84 84 85 85 /*marshall enum: */ 86 86 memcpy(marshalled_dataset,&enum_value,sizeof(enum_value));marshalled_dataset+=sizeof(enum_value); 87 87 88 /*marshall Tria VertexInput data: */88 /*marshall TriaP1Input data: */ 89 89 memcpy(marshalled_dataset,&enum_type,sizeof(enum_type));marshalled_dataset+=sizeof(enum_type); 90 90 memcpy(marshalled_dataset,&values,sizeof(values));marshalled_dataset+=sizeof(values); … … 93 93 } 94 94 /*}}}*/ 95 /*FUNCTION Tria VertexInput::MarshallSize{{{1*/96 int Tria VertexInput::MarshallSize(){95 /*FUNCTION TriaP1Input::MarshallSize{{{1*/ 96 int TriaP1Input::MarshallSize(){ 97 97 98 98 return sizeof(values)+ … … 101 101 } 102 102 /*}}}*/ 103 /*FUNCTION Tria VertexInput::Demarshall{{{1*/104 void Tria VertexInput::Demarshall(char** pmarshalled_dataset){103 /*FUNCTION TriaP1Input::Demarshall{{{1*/ 104 void TriaP1Input::Demarshall(char** pmarshalled_dataset){ 105 105 106 106 char* marshalled_dataset=NULL; … … 121 121 /*}}}*/ 122 122 #endif 123 /*FUNCTION Tria VertexInput::ObjectEnum{{{1*/124 int Tria VertexInput::ObjectEnum(void){125 126 return Tria VertexInputEnum;127 128 } 129 /*}}}*/ 130 /*FUNCTION Tria VertexInput::copy{{{1*/131 Object* Tria VertexInput::copy() {132 133 return new Tria VertexInput(this->enum_type,this->values);134 135 } 136 /*}}}*/ 137 138 /*Tria VertexInput management*/139 /*FUNCTION Tria VertexInput::InstanceEnum{{{1*/140 int Tria VertexInput::InstanceEnum(void){123 /*FUNCTION TriaP1Input::ObjectEnum{{{1*/ 124 int TriaP1Input::ObjectEnum(void){ 125 126 return TriaP1InputEnum; 127 128 } 129 /*}}}*/ 130 /*FUNCTION TriaP1Input::copy{{{1*/ 131 Object* TriaP1Input::copy() { 132 133 return new TriaP1Input(this->enum_type,this->values); 134 135 } 136 /*}}}*/ 137 138 /*TriaP1Input management*/ 139 /*FUNCTION TriaP1Input::InstanceEnum{{{1*/ 140 int TriaP1Input::InstanceEnum(void){ 141 141 142 142 return this->enum_type; … … 144 144 } 145 145 /*}}}*/ 146 /*FUNCTION Tria VertexInput::SpawnTriaInput{{{1*/147 Input* Tria VertexInput::SpawnTriaInput(int* indices){146 /*FUNCTION TriaP1Input::SpawnTriaInput{{{1*/ 147 Input* TriaP1Input::SpawnTriaInput(int* indices){ 148 148 149 149 /*output*/ 150 Tria VertexInput* outinput=NULL;150 TriaP1Input* outinput=NULL; 151 151 152 152 /*Create new Tria input (copy of current input)*/ 153 outinput=new Tria VertexInput(this->enum_type,&this->values[0]);153 outinput=new TriaP1Input(this->enum_type,&this->values[0]); 154 154 155 155 /*Assign output*/ … … 158 158 } 159 159 /*}}}*/ 160 /*FUNCTION Tria VertexInput::SpawnResult{{{1*/161 ElementResult* Tria VertexInput::SpawnResult(int step, double time){160 /*FUNCTION TriaP1Input::SpawnResult{{{1*/ 161 ElementResult* TriaP1Input::SpawnResult(int step, double time){ 162 162 163 163 return new TriaVertexElementResult(this->enum_type,this->values,step,time); … … 167 167 168 168 /*Object functions*/ 169 /*FUNCTION Tria VertexInput::GetInputValue(double* pvalue,GaussTria* gauss){{{1*/170 void Tria VertexInput::GetInputValue(double* pvalue,GaussTria* gauss){169 /*FUNCTION TriaP1Input::GetInputValue(double* pvalue,GaussTria* gauss){{{1*/ 170 void TriaP1Input::GetInputValue(double* pvalue,GaussTria* gauss){ 171 171 172 172 /*Call TriaRef function*/ … … 175 175 } 176 176 /*}}}*/ 177 /*FUNCTION Tria VertexInput::GetInputDerivativeValue(double* p, double* xyz_list, GaussTria* gauss){{{1*/178 void Tria VertexInput::GetInputDerivativeValue(double* p, double* xyz_list, GaussTria* gauss){177 /*FUNCTION TriaP1Input::GetInputDerivativeValue(double* p, double* xyz_list, GaussTria* gauss){{{1*/ 178 void TriaP1Input::GetInputDerivativeValue(double* p, double* xyz_list, GaussTria* gauss){ 179 179 180 180 /*Call TriaRef function*/ … … 182 182 } 183 183 /*}}}*/ 184 /*FUNCTION Tria VertexInput::GetVxStrainRate2d{{{1*/185 void Tria VertexInput::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, GaussTria* gauss){184 /*FUNCTION TriaP1Input::GetVxStrainRate2d{{{1*/ 185 void TriaP1Input::GetVxStrainRate2d(double* epsilonvx,double* xyz_list, GaussTria* gauss){ 186 186 187 187 /*Intermediary*/ … … 205 205 } 206 206 /*}}}*/ 207 /*FUNCTION Tria VertexInput::GetVyStrainRate2d{{{1*/208 void Tria VertexInput::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, GaussTria* gauss){207 /*FUNCTION TriaP1Input::GetVyStrainRate2d{{{1*/ 208 void TriaP1Input::GetVyStrainRate2d(double* epsilonvy,double* xyz_list, GaussTria* gauss){ 209 209 210 210 /*Intermediary*/ … … 228 228 } 229 229 /*}}}*/ 230 /*FUNCTION Tria VertexInput::ChangeEnum{{{1*/231 void Tria VertexInput::ChangeEnum(int newenumtype){230 /*FUNCTION TriaP1Input::ChangeEnum{{{1*/ 231 void TriaP1Input::ChangeEnum(int newenumtype){ 232 232 this->enum_type=newenumtype; 233 233 } 234 234 /*}}}*/ 235 /*FUNCTION Tria VertexInput::GetInputAverage{{{1*/236 void Tria VertexInput::GetInputAverage(double* pvalue){235 /*FUNCTION TriaP1Input::GetInputAverage{{{1*/ 236 void TriaP1Input::GetInputAverage(double* pvalue){ 237 237 *pvalue=1./3.*(values[0]+values[1]+values[2]); 238 238 } … … 240 240 241 241 /*Intermediary*/ 242 /*FUNCTION Tria VertexInput::SquareMin{{{1*/243 void Tria VertexInput::SquareMin(double* psquaremin, bool process_units,Parameters* parameters){242 /*FUNCTION TriaP1Input::SquareMin{{{1*/ 243 void TriaP1Input::SquareMin(double* psquaremin, bool process_units,Parameters* parameters){ 244 244 245 245 int i; … … 263 263 } 264 264 /*}}}*/ 265 /*FUNCTION Tria VertexInput::ContrainMin{{{1*/266 void Tria VertexInput::ConstrainMin(double minimum){265 /*FUNCTION TriaP1Input::ContrainMin{{{1*/ 266 void TriaP1Input::ConstrainMin(double minimum){ 267 267 268 268 int i; … … 272 272 } 273 273 /*}}}*/ 274 /*FUNCTION Tria VertexInput::InfinityNorm{{{1*/275 double Tria VertexInput::InfinityNorm(void){274 /*FUNCTION TriaP1Input::InfinityNorm{{{1*/ 275 double TriaP1Input::InfinityNorm(void){ 276 276 277 277 /*Output*/ … … 283 283 } 284 284 /*}}}*/ 285 /*FUNCTION Tria VertexInput::Max{{{1*/286 double Tria VertexInput::Max(void){285 /*FUNCTION TriaP1Input::Max{{{1*/ 286 double TriaP1Input::Max(void){ 287 287 288 288 const int numnodes=3; … … 295 295 } 296 296 /*}}}*/ 297 /*FUNCTION Tria VertexInput::MaxAbs{{{1*/298 double Tria VertexInput::MaxAbs(void){297 /*FUNCTION TriaP1Input::MaxAbs{{{1*/ 298 double TriaP1Input::MaxAbs(void){ 299 299 300 300 const int numnodes=3; … … 307 307 } 308 308 /*}}}*/ 309 /*FUNCTION Tria VertexInput::Min{{{1*/310 double Tria VertexInput::Min(void){309 /*FUNCTION TriaP1Input::Min{{{1*/ 310 double TriaP1Input::Min(void){ 311 311 312 312 const int numnodes=3; … … 319 319 } 320 320 /*}}}*/ 321 /*FUNCTION Tria VertexInput::MinAbs{{{1*/322 double Tria VertexInput::MinAbs(void){321 /*FUNCTION TriaP1Input::MinAbs{{{1*/ 322 double TriaP1Input::MinAbs(void){ 323 323 324 324 const int numnodes=3; … … 331 331 } 332 332 /*}}}*/ 333 /*FUNCTION Tria VertexInput::Scale{{{1*/334 void Tria VertexInput::Scale(double scale_factor){333 /*FUNCTION TriaP1Input::Scale{{{1*/ 334 void TriaP1Input::Scale(double scale_factor){ 335 335 336 336 int i; … … 340 340 } 341 341 /*}}}*/ 342 /*FUNCTION Tria VertexInput::ArtificialNoise{{{1*/343 void Tria VertexInput::ArtificialNoise(double min,double max){342 /*FUNCTION TriaP1Input::ArtificialNoise{{{1*/ 343 void TriaP1Input::ArtificialNoise(double min,double max){ 344 344 345 345 int i; … … 356 356 } 357 357 /*}}}*/ 358 /*FUNCTION Tria VertexInput::AXPY{{{1*/359 void Tria VertexInput::AXPY(Input* xinput,double scalar){360 361 int i; 362 const int numnodes=3; 363 Tria VertexInput* xtriavertexinput=NULL;358 /*FUNCTION TriaP1Input::AXPY{{{1*/ 359 void TriaP1Input::AXPY(Input* xinput,double scalar){ 360 361 int i; 362 const int numnodes=3; 363 TriaP1Input* xtriavertexinput=NULL; 364 364 365 365 /*xinput is of the same type, so cast it: */ 366 xtriavertexinput=(Tria VertexInput*)xinput;366 xtriavertexinput=(TriaP1Input*)xinput; 367 367 368 368 /*Carry out the AXPY operation depending on type:*/ 369 369 switch(xinput->ObjectEnum()){ 370 370 371 case Tria VertexInputEnum :371 case TriaP1InputEnum : 372 372 for(i=0;i<numnodes;i++)this->values[i]=this->values[i]+scalar*xtriavertexinput->values[i]; 373 373 return; … … 379 379 } 380 380 /*}}}*/ 381 /*FUNCTION Tria VertexInput::Constrain{{{1*/382 void Tria VertexInput::Constrain(double cm_min, double cm_max){381 /*FUNCTION TriaP1Input::Constrain{{{1*/ 382 void TriaP1Input::Constrain(double cm_min, double cm_max){ 383 383 384 384 int i; … … 390 390 } 391 391 /*}}}*/ 392 /*FUNCTION Tria VertexInput::GetVectorFromInputs{{{1*/393 void Tria VertexInput::GetVectorFromInputs(Vec vector,int* doflist){392 /*FUNCTION TriaP1Input::GetVectorFromInputs{{{1*/ 393 void TriaP1Input::GetVectorFromInputs(Vec vector,int* doflist){ 394 394 395 395 const int numvertices=3; … … 397 397 398 398 } /*}}}*/ 399 /*FUNCTION Tria VertexInput::GetValuesPtr{{{1*/400 void Tria VertexInput::GetValuesPtr(double** pvalues,int* pnum_values){399 /*FUNCTION TriaP1Input::GetValuesPtr{{{1*/ 400 void TriaP1Input::GetValuesPtr(double** pvalues,int* pnum_values){ 401 401 402 402 *pvalues=this->values; … … 405 405 } 406 406 /*}}}*/ 407 /*FUNCTION Tria VertexInput::PointwiseMin{{{1*/408 Input* Tria VertexInput::PointwiseMin(Input* inputB){407 /*FUNCTION TriaP1Input::PointwiseMin{{{1*/ 408 Input* TriaP1Input::PointwiseMin(Input* inputB){ 409 409 410 410 /*Ouput*/ 411 Tria VertexInput* outinput=NULL;411 TriaP1Input* outinput=NULL; 412 412 413 413 /*Intermediaries*/ 414 414 int i; 415 Tria VertexInput *xinputB = NULL;415 TriaP1Input *xinputB = NULL; 416 416 int B_numvalues; 417 417 const int numnodes = 3; … … 419 419 420 420 /*Check that inputB is of the same type*/ 421 if (inputB->ObjectEnum()!=Tria VertexInputEnum) _error_("Operation not permitted because inputB is of type %s",EnumToStringx(inputB->ObjectEnum()));422 xinputB=(Tria VertexInput*)inputB;421 if (inputB->ObjectEnum()!=TriaP1InputEnum) _error_("Operation not permitted because inputB is of type %s",EnumToStringx(inputB->ObjectEnum())); 422 xinputB=(TriaP1Input*)inputB; 423 423 424 424 /*Create point wise min*/ … … 429 429 430 430 /*Create new Tria vertex input (copy of current input)*/ 431 outinput=new Tria VertexInput(this->enum_type,&minvalues[0]);431 outinput=new TriaP1Input(this->enum_type,&minvalues[0]); 432 432 433 433 /*Return output pointer*/ … … 436 436 } 437 437 /*}}}*/ 438 /*FUNCTION Tria VertexInput::PointwiseMax{{{1*/439 Input* Tria VertexInput::PointwiseMax(Input* inputB){438 /*FUNCTION TriaP1Input::PointwiseMax{{{1*/ 439 Input* TriaP1Input::PointwiseMax(Input* inputB){ 440 440 441 441 /*Ouput*/ 442 Tria VertexInput* outinput=NULL;442 TriaP1Input* outinput=NULL; 443 443 444 444 /*Intermediaries*/ 445 445 int i; 446 Tria VertexInput *xinputB = NULL;446 TriaP1Input *xinputB = NULL; 447 447 int B_numvalues; 448 448 const int numnodes = 3; … … 450 450 451 451 /*Check that inputB is of the same type*/ 452 if (inputB->ObjectEnum()!=Tria VertexInputEnum) _error_("Operation not permitted because inputB is of type %s",EnumToStringx(inputB->ObjectEnum()));453 xinputB=(Tria VertexInput*)inputB;452 if (inputB->ObjectEnum()!=TriaP1InputEnum) _error_("Operation not permitted because inputB is of type %s",EnumToStringx(inputB->ObjectEnum())); 453 xinputB=(TriaP1Input*)inputB; 454 454 455 455 /*Create point wise max*/ … … 460 460 461 461 /*Create new Tria vertex input (copy of current input)*/ 462 outinput=new Tria VertexInput(this->enum_type,&maxvalues[0]);462 outinput=new TriaP1Input(this->enum_type,&maxvalues[0]); 463 463 464 464 /*Return output pointer*/ … … 467 467 } 468 468 /*}}}*/ 469 /*FUNCTION Tria VertexInput::Configure{{{1*/470 void Tria VertexInput::Configure(Parameters* parameters){469 /*FUNCTION TriaP1Input::Configure{{{1*/ 470 void TriaP1Input::Configure(Parameters* parameters){ 471 471 /*do nothing: */ 472 472 }
Note:
See TracChangeset
for help on using the changeset viewer.