Changeset 22279
- Timestamp:
- 11/29/17 02:32:12 (7 years ago)
- Location:
- issm/trunk-jpl/src/c/classes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r22277 r22279 4469 4469 /*Intermediaries*/ 4470 4470 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 4471 transient_input->Configure(element->parameters);4471 //transient_input->Configure(element->parameters); 4472 4472 element->inputs->AddInput(transient_input); 4473 4473 } … … 4513 4513 /*}}}*/ 4514 4514 void FemModel::AverageTransientOutputx(int* input_enum,IssmDouble init_time,int numoutputs){ /*{{{*/ 4515 IssmDouble* time_averaged=NULL; 4515 4516 4516 for(int i=0;i<numoutputs;i++){ 4517 4517 if(input_enum[i]<0){ … … 4523 4523 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j)); 4524 4524 int numvertices = element->GetNumberOfVertices(); 4525 //xNew<IssmDouble>(numvertices);4525 IssmDouble* time_averaged=NULL; 4526 4526 4527 4527 Input* input=element->inputs->GetInput(input_enum[i]); _assert_(input); 4528 4528 TransientInput* stacking_input=NULL; 4529 4529 stacking_input=dynamic_cast<TransientInput*>(input); 4530 stacking_input->GetInputAverageOnTimes(&time_averaged, init_time); 4531 4532 element->AddInput(TimeAverageEffectivePressureEnum,time_averaged,P1Enum); 4530 stacking_input->GetInputAverageOnTimes(&time_averaged,init_time); 4531 4532 element->AddInput(TimeAverageEffectivePressureEnum,&time_averaged[0],P1Enum); 4533 xDelete<IssmDouble>(time_averaged); 4533 4534 } 4534 4535 } -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
r22277 r22279 313 313 IssmDouble time; 314 314 IssmDouble preceding_time; 315 IssmDouble values[3] = {0.0,0.0,0.0}; 315 IssmDouble* values= NULL; 316 317 values=xNew<IssmDouble>(3); 316 318 317 319 for(int i=0;i<this->numtimesteps;i++){ 318 320 time = this->timesteps[i]; 321 TriaInput* input = (TriaInput*)this->inputs->GetObjectByOffset(i); _assert_(input); 322 int numnodes = input->NumberofNodes(input->interpolation_type); 319 323 if(i==0){ 320 324 preceding_time = init_time; 325 for(int j=0;j<numnodes;j++){ 326 values[j]=(input->values[j]*(time-preceding_time)); 327 } 321 328 } 322 329 else{ 323 330 preceding_time = this->timesteps[i-1]; 331 for(int j=0;j<numnodes;j++){ 332 values[j]+=(input->values[j]*(time-preceding_time)); 333 if(i==this->numtimesteps-1){ 334 values[j]=values[j]/(this->timesteps[this->numtimesteps-1]-init_time); 335 } 336 } 324 337 } 325 TriaInput* input = (TriaInput*)this->inputs->GetObjectByOffset(i); _assert_(input);326 int numnodes = input->NumberofNodes(input->interpolation_type);327 for(int j=0;j<numnodes;j++){328 values[j]+=(input->values[j]*(time-preceding_time));329 }330 }331 for(int j = 0;j<3;j++){332 values[j]/=(this->timesteps[this->numtimesteps-1]-init_time);333 //printf("final value is %e\n",values[j]);334 338 } 335 339 *pvalues=values;
Note:
See TracChangeset
for help on using the changeset viewer.