Changeset 16314
- Timestamp:
- 10/07/13 15:52:03 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/DependentObject.cpp
r15130 r16314 94 94 } 95 95 96 femmodel->Responsex(poutput_value,this->name ,0);96 femmodel->Responsex(poutput_value,this->name); 97 97 98 98 } -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r16275 r16314 106 106 #ifdef _HAVE_CONTROL_ 107 107 virtual void Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index)=0; 108 virtual IssmDouble ThicknessAbsMisfit( int weight_index)=0;109 virtual IssmDouble SurfaceAbsVelMisfit( int weight_index)=0;110 virtual IssmDouble SurfaceRelVelMisfit( int weight_index)=0;111 virtual IssmDouble SurfaceLogVelMisfit( int weight_index)=0;112 virtual IssmDouble SurfaceLogVxVyMisfit( int weight_index)=0;113 virtual IssmDouble SurfaceAverageVelMisfit( int weight_index)=0;114 virtual IssmDouble ThicknessAbsGradient( int weight_index)=0;115 virtual IssmDouble ThicknessAlongGradient( int weight_index)=0;116 virtual IssmDouble ThicknessAcrossGradient( int weight_index)=0;117 virtual IssmDouble BalancethicknessMisfit( int weight_index)=0;118 virtual IssmDouble RheologyBbarAbsGradient( int weight_index)=0;119 virtual IssmDouble DragCoefficientAbsGradient( int weight_index)=0;108 virtual IssmDouble ThicknessAbsMisfit(void)=0; 109 virtual IssmDouble SurfaceAbsVelMisfit(void)=0; 110 virtual IssmDouble SurfaceRelVelMisfit(void)=0; 111 virtual IssmDouble SurfaceLogVelMisfit(void)=0; 112 virtual IssmDouble SurfaceLogVxVyMisfit(void)=0; 113 virtual IssmDouble SurfaceAverageVelMisfit(void)=0; 114 virtual IssmDouble ThicknessAbsGradient(void)=0; 115 virtual IssmDouble ThicknessAlongGradient(void)=0; 116 virtual IssmDouble ThicknessAcrossGradient(void)=0; 117 virtual IssmDouble BalancethicknessMisfit(void)=0; 118 virtual IssmDouble RheologyBbarAbsGradient(void)=0; 119 virtual IssmDouble DragCoefficientAbsGradient(void)=0; 120 120 virtual void ControlInputGetGradient(Vector<IssmDouble>* gradient,int enum_type,int control_index)=0; 121 121 virtual void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16313 r16314 6022 6022 if(IsOnBed()){ 6023 6023 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6024 tria->GradjDragGradient(gradient, resp,control_index);6024 tria->GradjDragGradient(gradient,control_index); 6025 6025 delete tria->material; delete tria; 6026 6026 } … … 6029 6029 if(IsOnBed()){ 6030 6030 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6031 tria->GradjBGradient(gradient, resp,control_index);6031 tria->GradjBGradient(gradient,control_index); 6032 6032 delete tria->material; delete tria; 6033 6033 } … … 6417 6417 /*}}}*/ 6418 6418 /*FUNCTION Penta::SurfaceAverageVelMisfit {{{*/ 6419 IssmDouble Penta::SurfaceAverageVelMisfit( int weight_index){6419 IssmDouble Penta::SurfaceAverageVelMisfit(void){ 6420 6420 6421 6421 int approximation; … … 6440 6440 * and compute SurfaceAverageVelMisfit*/ 6441 6441 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6442 J=tria->SurfaceAverageVelMisfit( weight_index);6442 J=tria->SurfaceAverageVelMisfit(); 6443 6443 delete tria->material; delete tria; 6444 6444 return J; … … 6447 6447 6448 6448 tria=(Tria*)SpawnTria(1); //lower face is 0, upper face is 1. 6449 J=tria->SurfaceAverageVelMisfit( weight_index);6449 J=tria->SurfaceAverageVelMisfit(); 6450 6450 delete tria->material; delete tria; 6451 6451 return J; … … 6454 6454 /*}}}*/ 6455 6455 /*FUNCTION Penta::SurfaceAbsVelMisfit {{{*/ 6456 IssmDouble Penta::SurfaceAbsVelMisfit( int weight_index){6456 IssmDouble Penta::SurfaceAbsVelMisfit(void){ 6457 6457 6458 6458 int approximation; … … 6477 6477 * and compute SurfaceAbsVelMisfit*/ 6478 6478 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6479 J=tria->SurfaceAbsVelMisfit( weight_index);6479 J=tria->SurfaceAbsVelMisfit(); 6480 6480 delete tria->material; delete tria; 6481 6481 return J; … … 6484 6484 6485 6485 tria=(Tria*)SpawnTria(1); //lower face is 0, upper face is 1. 6486 J=tria->SurfaceAbsVelMisfit( weight_index);6486 J=tria->SurfaceAbsVelMisfit(); 6487 6487 delete tria->material; delete tria; 6488 6488 return J; … … 6491 6491 /*}}}*/ 6492 6492 /*FUNCTION Penta::SurfaceLogVelMisfit {{{*/ 6493 IssmDouble Penta::SurfaceLogVelMisfit( int weight_index){6493 IssmDouble Penta::SurfaceLogVelMisfit(void){ 6494 6494 6495 6495 int approximation; … … 6514 6514 * and compute SurfaceLogVelMisfit*/ 6515 6515 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6516 J=tria->SurfaceLogVelMisfit( weight_index);6516 J=tria->SurfaceLogVelMisfit(); 6517 6517 delete tria->material; delete tria; 6518 6518 return J; … … 6521 6521 6522 6522 tria=(Tria*)SpawnTria(1); //lower face is 0, upper face is 1. 6523 J=tria->SurfaceLogVelMisfit( weight_index);6523 J=tria->SurfaceLogVelMisfit(); 6524 6524 delete tria->material; delete tria; 6525 6525 return J; … … 6528 6528 /*}}}*/ 6529 6529 /*FUNCTION Penta::SurfaceLogVxVyMisfit {{{*/ 6530 IssmDouble Penta::SurfaceLogVxVyMisfit( int weight_index){6530 IssmDouble Penta::SurfaceLogVxVyMisfit(void){ 6531 6531 6532 6532 IssmDouble J; … … 6553 6553 * and compute SurfaceLogVxVyMisfit*/ 6554 6554 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6555 J=tria->SurfaceLogVxVyMisfit( weight_index);6555 J=tria->SurfaceLogVxVyMisfit(); 6556 6556 delete tria->material; delete tria; 6557 6557 return J; … … 6560 6560 6561 6561 tria=(Tria*)SpawnTria(1); //lower face is 0, upper face is 1. 6562 J=tria->SurfaceLogVxVyMisfit( weight_index);6562 J=tria->SurfaceLogVxVyMisfit(); 6563 6563 delete tria->material; delete tria; 6564 6564 return J; … … 6567 6567 /*}}}*/ 6568 6568 /*FUNCTION Penta::SurfaceRelVelMisfit {{{*/ 6569 IssmDouble Penta::SurfaceRelVelMisfit( int weight_index){6569 IssmDouble Penta::SurfaceRelVelMisfit(void){ 6570 6570 6571 6571 int approximation; … … 6590 6590 * and compute SurfaceRelVelMisfit*/ 6591 6591 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1. 6592 J=tria->SurfaceRelVelMisfit( weight_index);6592 J=tria->SurfaceRelVelMisfit(); 6593 6593 delete tria->material; delete tria; 6594 6594 return J; … … 6597 6597 6598 6598 tria=(Tria*)SpawnTria(1); //lower face is 0, upper face is 1. 6599 J=tria->SurfaceRelVelMisfit( weight_index);6599 J=tria->SurfaceRelVelMisfit(); 6600 6600 delete tria->material; delete tria; 6601 6601 return J; … … 6604 6604 /*}}}*/ 6605 6605 /*FUNCTION Penta::ThicknessAbsGradient{{{*/ 6606 IssmDouble Penta::ThicknessAbsGradient( int weight_index){6606 IssmDouble Penta::ThicknessAbsGradient(void){ 6607 6607 6608 6608 _error_("Not implemented yet"); … … 6610 6610 /*}}}*/ 6611 6611 /*FUNCTION Penta::ThicknessAbsMisfit {{{*/ 6612 IssmDouble Penta::ThicknessAbsMisfit( int weight_index){6612 IssmDouble Penta::ThicknessAbsMisfit(void){ 6613 6613 6614 6614 int approximation; … … 6624 6624 6625 6625 tria=(Tria*)SpawnTria(0); 6626 J=tria->ThicknessAbsMisfit( weight_index);6626 J=tria->ThicknessAbsMisfit(); 6627 6627 delete tria->material; delete tria; 6628 6628 return J; … … 6630 6630 /*}}}*/ 6631 6631 /*FUNCTION Penta::DragCoefficientAbsGradient{{{*/ 6632 IssmDouble Penta::DragCoefficientAbsGradient( int weight_index){6632 IssmDouble Penta::DragCoefficientAbsGradient(void){ 6633 6633 6634 6634 IssmDouble J; … … 6639 6639 6640 6640 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1 6641 J=tria->DragCoefficientAbsGradient( weight_index);6641 J=tria->DragCoefficientAbsGradient(); 6642 6642 delete tria->material; delete tria; 6643 6643 return J; … … 6645 6645 /*}}}*/ 6646 6646 /*FUNCTION Penta::RheologyBbarAbsGradient{{{*/ 6647 IssmDouble Penta::RheologyBbarAbsGradient( int weight_index){6647 IssmDouble Penta::RheologyBbarAbsGradient(void){ 6648 6648 6649 6649 IssmDouble J; … … 6654 6654 6655 6655 tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1 6656 J=tria->RheologyBbarAbsGradient( weight_index);6656 J=tria->RheologyBbarAbsGradient(); 6657 6657 delete tria->material; delete tria; 6658 6658 return J; -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r16275 r16314 137 137 138 138 #ifdef _HAVE_CONTROL_ 139 IssmDouble DragCoefficientAbsGradient( int weight_index);139 IssmDouble DragCoefficientAbsGradient(void); 140 140 void GradientIndexing(int* indexing,int control_index); 141 141 void Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index); … … 151 151 void ControlInputScaleGradient(int enum_type,IssmDouble scale); 152 152 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index); 153 IssmDouble RheologyBbarAbsGradient( int weight_index);154 IssmDouble ThicknessAbsMisfit( int weight_index);155 IssmDouble SurfaceAbsVelMisfit( int weight_index);156 IssmDouble SurfaceRelVelMisfit( int weight_index);157 IssmDouble SurfaceLogVelMisfit( int weight_index);158 IssmDouble SurfaceLogVxVyMisfit( int weight_index);159 IssmDouble SurfaceAverageVelMisfit( int weight_index);160 IssmDouble ThicknessAbsGradient( int weight_index);161 IssmDouble ThicknessAlongGradient( int weight_index){_error_("not supported");};162 IssmDouble ThicknessAcrossGradient( int weight_index){_error_("not supported");};163 IssmDouble BalancethicknessMisfit( int weight_index){_error_("not supported");};153 IssmDouble RheologyBbarAbsGradient(void); 154 IssmDouble ThicknessAbsMisfit(void); 155 IssmDouble SurfaceAbsVelMisfit(void); 156 IssmDouble SurfaceRelVelMisfit(void); 157 IssmDouble SurfaceLogVelMisfit(void); 158 IssmDouble SurfaceLogVxVyMisfit(void); 159 IssmDouble SurfaceAverageVelMisfit(void); 160 IssmDouble ThicknessAbsGradient(void); 161 IssmDouble ThicknessAlongGradient(void){_error_("not supported");}; 162 IssmDouble ThicknessAcrossGradient(void){_error_("not supported");}; 163 IssmDouble BalancethicknessMisfit(void){_error_("not supported");}; 164 164 void InputControlUpdate(IssmDouble scalar,bool save_parameter); 165 165 #endif -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r16313 r16314 3613 3613 #ifdef _HAVE_CONTROL_ 3614 3614 /*FUNCTION Tria::BalancethicknessMisfit{{{*/ 3615 IssmDouble Tria::BalancethicknessMisfit( int weight_index){3615 IssmDouble Tria::BalancethicknessMisfit(void){ 3616 3616 3617 3617 /* Intermediaries */ … … 3820 3820 break; 3821 3821 case DragCoefficientAbsGradientEnum: 3822 GradjDragGradient(gradient, resp,control_index);3822 GradjDragGradient(gradient,control_index); 3823 3823 break; 3824 3824 case RheologyBbarAbsGradientEnum: 3825 GradjBGradient(gradient, resp,control_index);3825 GradjBGradient(gradient,control_index); 3826 3826 break; 3827 3827 default: … … 3833 3833 /*}}}*/ 3834 3834 /*FUNCTION Tria::GradjBGradient{{{*/ 3835 void Tria::GradjBGradient(Vector<IssmDouble>* gradient,int weight_index,intcontrol_index){3835 void Tria::GradjBGradient(Vector<IssmDouble>* gradient,int control_index){ 3836 3836 3837 3837 int i; … … 4073 4073 /*}}}*/ 4074 4074 /*FUNCTION Tria::GradjDragGradient{{{*/ 4075 void Tria::GradjDragGradient(Vector<IssmDouble>* gradient, int weight_index,int control_index){4075 void Tria::GradjDragGradient(Vector<IssmDouble>* gradient,int control_index){ 4076 4076 4077 4077 int i; … … 4341 4341 /*}}}*/ 4342 4342 /*FUNCTION Tria::RheologyBbarAbsGradient{{{*/ 4343 IssmDouble Tria::RheologyBbarAbsGradient( int weight_index){4343 IssmDouble Tria::RheologyBbarAbsGradient(void){ 4344 4344 4345 4345 /* Intermediaries */ … … 4384 4384 /*}}}*/ 4385 4385 /*FUNCTION Tria::SurfaceAverageVelMisfit {{{*/ 4386 IssmDouble Tria::SurfaceAverageVelMisfit( int weight_index){4386 IssmDouble Tria::SurfaceAverageVelMisfit(void){ 4387 4387 4388 4388 IssmDouble Jelem=0,S,Jdet; … … 4440 4440 /*}}}*/ 4441 4441 /*FUNCTION Tria::SurfaceLogVelMisfit {{{*/ 4442 IssmDouble Tria::SurfaceLogVelMisfit( int weight_index){4442 IssmDouble Tria::SurfaceLogVelMisfit(void){ 4443 4443 4444 4444 IssmDouble Jelem=0.; … … 4500 4500 /*}}}*/ 4501 4501 /*FUNCTION Tria::SurfaceLogVxVyMisfit {{{*/ 4502 IssmDouble Tria::SurfaceLogVxVyMisfit( int weight_index){4502 IssmDouble Tria::SurfaceLogVxVyMisfit(void){ 4503 4503 4504 4504 IssmDouble Jelem=0, S=0; … … 4560 4560 /*}}}*/ 4561 4561 /*FUNCTION Tria::SurfaceAbsVelMisfit {{{*/ 4562 IssmDouble Tria::SurfaceAbsVelMisfit( int weight_index){4562 IssmDouble Tria::SurfaceAbsVelMisfit(void){ 4563 4563 4564 4564 IssmDouble Jelem=0; … … 4616 4616 /*}}}*/ 4617 4617 /*FUNCTION Tria::SurfaceRelVelMisfit {{{*/ 4618 IssmDouble Tria::SurfaceRelVelMisfit( int weight_index){4618 IssmDouble Tria::SurfaceRelVelMisfit(void){ 4619 4619 4620 4620 IssmDouble Jelem=0; … … 4677 4677 /*}}}*/ 4678 4678 /*FUNCTION Tria::ThicknessAbsGradient{{{*/ 4679 IssmDouble Tria::ThicknessAbsGradient( int weight_index){4679 IssmDouble Tria::ThicknessAbsGradient(void){ 4680 4680 4681 4681 /* Intermediaries */ … … 4720 4720 /*}}}*/ 4721 4721 /*FUNCTION Tria::ThicknessAlongGradient{{{*/ 4722 IssmDouble Tria::ThicknessAlongGradient( int weight_index){4722 IssmDouble Tria::ThicknessAlongGradient(void){ 4723 4723 4724 4724 /* Intermediaries */ … … 4771 4771 /*}}}*/ 4772 4772 /*FUNCTION Tria::ThicknessAcrossGradient{{{*/ 4773 IssmDouble Tria::ThicknessAcrossGradient( int weight_index){4773 IssmDouble Tria::ThicknessAcrossGradient(void){ 4774 4774 4775 4775 /* Intermediaries */ … … 4822 4822 /*}}}*/ 4823 4823 /*FUNCTION Tria::ThicknessAbsMisfit {{{*/ 4824 IssmDouble Tria::ThicknessAbsMisfit( int weight_index){4824 IssmDouble Tria::ThicknessAbsMisfit(void){ 4825 4825 4826 4826 /*Intermediaries*/ … … 5139 5139 /*}}}*/ 5140 5140 /*FUNCTION Tria::DragCoefficientAbsGradient{{{*/ 5141 IssmDouble Tria::DragCoefficientAbsGradient( int weight_index){5141 IssmDouble Tria::DragCoefficientAbsGradient(void){ 5142 5142 5143 5143 /* Intermediaries */ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r16275 r16314 134 134 135 135 #ifdef _HAVE_CONTROL_ 136 IssmDouble DragCoefficientAbsGradient( int weight_index);136 IssmDouble DragCoefficientAbsGradient(void); 137 137 void GradientIndexing(int* indexing,int control_index); 138 138 void Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index); 139 void GradjBGradient(Vector<IssmDouble>* gradient,int weight_index,intcontrol_index);140 void GradjDGradient(Vector<IssmDouble>* gradient,int weight_index,intcontrol_index);139 void GradjBGradient(Vector<IssmDouble>* gradient,int control_index); 140 void GradjDGradient(Vector<IssmDouble>* gradient,int control_index); 141 141 void GradjBSSA(Vector<IssmDouble>* gradient,int control_index); 142 142 void GradjDSSA(Vector<IssmDouble>* gradient,int control_index); 143 143 void GradjDragSSA(Vector<IssmDouble>* gradient,int control_index); 144 144 void GradjDragFS(Vector<IssmDouble>* gradient,int control_index); 145 void GradjDragGradient(Vector<IssmDouble>* gradient,int weight_index,intcontrol_index);145 void GradjDragGradient(Vector<IssmDouble>* gradient,int control_index); 146 146 void GradjDhDtBalancedthickness(Vector<IssmDouble>* gradient,int control_index); 147 147 void GradjVxBalancedthickness(Vector<IssmDouble>* gradient,int control_index); … … 153 153 void ControlInputScaleGradient(int enum_type,IssmDouble scale); 154 154 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index); 155 IssmDouble RheologyBbarAbsGradient( int weight_index);156 IssmDouble ThicknessAbsMisfit( int weight_index);157 IssmDouble SurfaceAbsVelMisfit( int weight_index);158 IssmDouble ThicknessAbsGradient( int weight_index);159 IssmDouble ThicknessAlongGradient( int weight_index);160 IssmDouble ThicknessAcrossGradient( int weight_index);161 IssmDouble BalancethicknessMisfit( int weight_index);162 IssmDouble SurfaceRelVelMisfit( int weight_index);163 IssmDouble SurfaceLogVelMisfit( int weight_index);164 IssmDouble SurfaceLogVxVyMisfit( int weight_index);165 IssmDouble SurfaceAverageVelMisfit( int weight_index);155 IssmDouble RheologyBbarAbsGradient(void); 156 IssmDouble ThicknessAbsMisfit(void); 157 IssmDouble SurfaceAbsVelMisfit(void); 158 IssmDouble ThicknessAbsGradient(void); 159 IssmDouble ThicknessAlongGradient(void); 160 IssmDouble ThicknessAcrossGradient(void); 161 IssmDouble BalancethicknessMisfit(void); 162 IssmDouble SurfaceRelVelMisfit(void); 163 IssmDouble SurfaceLogVelMisfit(void); 164 IssmDouble SurfaceLogVxVyMisfit(void); 165 IssmDouble SurfaceAverageVelMisfit(void); 166 166 void InputControlUpdate(IssmDouble scalar,bool save_parameter); 167 167 #endif -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r16307 r16314 418 418 } 419 419 /*}}}*/ 420 void FemModel::Responsex(IssmDouble* responses,const char* response_descriptor ,int weight_index){/*{{{*/420 void FemModel::Responsex(IssmDouble* responses,const char* response_descriptor){/*{{{*/ 421 421 422 422 int response_descriptor_enum=StringToEnumx(response_descriptor); 423 this->Responsex(responses, response_descriptor_enum ,weight_index);424 425 } 426 /*}}}*/ 427 void FemModel::Responsex(IssmDouble* responses,int response_descriptor_enum ,int weight_index){/*{{{*/423 this->Responsex(responses, response_descriptor_enum); 424 425 } 426 /*}}}*/ 427 void FemModel::Responsex(IssmDouble* responses,int response_descriptor_enum){/*{{{*/ 428 428 429 429 switch (response_descriptor_enum){ … … 445 445 case MassFluxEnum: this->MassFluxx( responses); break; 446 446 #ifdef _HAVE_CONTROL_ 447 case SurfaceAbsVelMisfitEnum: SurfaceAbsVelMisfitx(responses, elements,nodes, vertices, loads, materials, parameters,weight_index); break;448 case SurfaceRelVelMisfitEnum: SurfaceRelVelMisfitx(responses, elements,nodes, vertices, loads, materials, parameters,weight_index); break;449 case SurfaceLogVelMisfitEnum: SurfaceLogVelMisfitx(responses, elements,nodes, vertices, loads, materials, parameters,weight_index); break;450 case SurfaceLogVxVyMisfitEnum: SurfaceLogVxVyMisfitx(responses, elements,nodes, vertices, loads, materials, parameters,weight_index); break;451 case SurfaceAverageVelMisfitEnum: SurfaceAverageVelMisfitx(responses,this ,weight_index); break;452 case ThicknessAbsMisfitEnum: ThicknessAbsMisfitx(responses, elements,nodes, vertices, loads, materials, parameters ,weight_index); break;453 case ThicknessAbsGradientEnum: this->ThicknessAbsGradientx(responses ,weight_index); break;454 case ThicknessAlongGradientEnum: ThicknessAlongGradientx(responses, elements,nodes, vertices, loads, materials, parameters ,weight_index); break;455 case ThicknessAcrossGradientEnum: ThicknessAcrossGradientx(responses, elements,nodes, vertices, loads, materials, parameters ,weight_index); break;456 case RheologyBbarAbsGradientEnum: RheologyBbarAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters ,weight_index); break;457 case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters ,weight_index); break;458 case BalancethicknessMisfitEnum: BalancethicknessMisfitx(responses ,weight_index); break;447 case SurfaceAbsVelMisfitEnum: SurfaceAbsVelMisfitx(responses, elements,nodes, vertices, loads, materials,parameters); break; 448 case SurfaceRelVelMisfitEnum: SurfaceRelVelMisfitx(responses, elements,nodes, vertices, loads, materials,parameters); break; 449 case SurfaceLogVelMisfitEnum: SurfaceLogVelMisfitx(responses, elements,nodes, vertices, loads, materials,parameters); break; 450 case SurfaceLogVxVyMisfitEnum: SurfaceLogVxVyMisfitx(responses, elements,nodes, vertices, loads, materials,parameters); break; 451 case SurfaceAverageVelMisfitEnum: SurfaceAverageVelMisfitx(responses,this); break; 452 case ThicknessAbsMisfitEnum: ThicknessAbsMisfitx(responses, elements,nodes, vertices, loads, materials, parameters); break; 453 case ThicknessAbsGradientEnum: this->ThicknessAbsGradientx(responses); break; 454 case ThicknessAlongGradientEnum: ThicknessAlongGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 455 case ThicknessAcrossGradientEnum: ThicknessAcrossGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 456 case RheologyBbarAbsGradientEnum: RheologyBbarAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 457 case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break; 458 case BalancethicknessMisfitEnum: BalancethicknessMisfitx(responses); break; 459 459 #endif 460 460 case TotalSmbEnum: this->TotalSmbx(responses); break; … … 490 490 491 491 case IceVolumeEnum: 492 Responsex(&output_value,"IceVolume" ,0);492 Responsex(&output_value,"IceVolume"); 493 493 results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time)); 494 494 break; 495 495 case IceVolumeAboveFloatationEnum: 496 Responsex(&output_value,"IceVolumeAboveFloatation" ,0);496 Responsex(&output_value,"IceVolumeAboveFloatation"); 497 497 results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeAboveFloatationEnum,reCast<IssmPDouble>(output_value),step,time)); 498 498 break; 499 499 case TotalSmbEnum: 500 Responsex(&output_value,"TotalSmb" ,0);500 Responsex(&output_value,"TotalSmb"); 501 501 results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time)); 502 502 break; 503 503 case MaxVelEnum: 504 Responsex(&output_value,"MaxVel" ,0);504 Responsex(&output_value,"MaxVel"); 505 505 results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time)); 506 506 break; … … 997 997 #endif 998 998 #ifdef _HAVE_CONTROL_ 999 void FemModel::BalancethicknessMisfitx(IssmDouble* presponse ,int weight_index){/*{{{*/999 void FemModel::BalancethicknessMisfitx(IssmDouble* presponse){/*{{{*/ 1000 1000 1001 1001 IssmDouble J = 0; … … 1004 1004 for(int i=0;i<this->elements->Size();i++){ 1005 1005 Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i)); 1006 J+=element->BalancethicknessMisfit( weight_index);1006 J+=element->BalancethicknessMisfit(); 1007 1007 } 1008 1008 ISSM_MPI_Reduce (&J,&J_sum,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); … … 1014 1014 1015 1015 }/*}}}*/ 1016 void FemModel::ThicknessAbsGradientx( IssmDouble* pJ , int weight_index){/*{{{*/1016 void FemModel::ThicknessAbsGradientx( IssmDouble* pJ){/*{{{*/ 1017 1017 1018 1018 /*Intermediary*/ … … 1027 1027 for (i=0;i<elements->Size();i++){ 1028 1028 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 1029 J+=element->ThicknessAbsGradient( weight_index);1029 J+=element->ThicknessAbsGradient(); 1030 1030 } 1031 1031 … … 1056 1056 //_printf_(true,"list of misfits: "); 1057 1057 for(int i=0;i<num_responses;i++){ 1058 this->Responsex(&Jplus,EnumToStringx(responses[i]) ,i);1058 this->Responsex(&Jplus,EnumToStringx(responses[i])); 1059 1059 //_printf_(true," %12.7g ",Jplus); 1060 1060 J+=Jplus; … … 1125 1125 parameters->SetParam(index,IndexEnum); 1126 1126 1127 this->Responsex(&femmodel_response,root ,0);//0 is the index for weights1127 this->Responsex(&femmodel_response,root); 1128 1128 1129 1129 if(my_rank==0){ … … 1144 1144 1145 1145 /*perfectly normal response function: */ 1146 this->Responsex(&femmodel_response,root ,0);//0 is the weight index1146 this->Responsex(&femmodel_response,root); 1147 1147 1148 1148 if(my_rank==0){ -
issm/trunk-jpl/src/c/classes/FemModel.h
r16275 r16314 77 77 void IceVolumeAboveFloatationx(IssmDouble* pV); 78 78 void ElementResponsex(IssmDouble* presponse,int response_enum); 79 void BalancethicknessMisfitx(IssmDouble* pV ,int weight_index);79 void BalancethicknessMisfitx(IssmDouble* pV); 80 80 #endif 81 81 #ifdef _HAVE_DAKOTA_ … … 84 84 void RequestedOutputsx(int* requested_outputs, int numoutputs); 85 85 void RequestedDependentsx(void); 86 void Responsex(IssmDouble* presponse,int response_descriptor_enum ,int weight_index);87 void Responsex(IssmDouble* presponse,const char* response_descriptor ,int weight_index);86 void Responsex(IssmDouble* presponse,int response_descriptor_enum); 87 void Responsex(IssmDouble* presponse,const char* response_descriptor); 88 88 #ifdef _HAVE_CONTROL_ 89 89 void CostFunctionx( IssmDouble* pJ); 90 void ThicknessAbsGradientx( IssmDouble* pJ ,int weight_index);90 void ThicknessAbsGradientx( IssmDouble* pJ); 91 91 #endif 92 92 #ifdef _HAVE_GIA_ -
issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp
r16313 r16314 147 147 /*Get requested input within dataset*/ 148 148 for(int i=0;i<this->numids;i++) if(this->ids[i]==id) offset=i; 149 if(offset<0){ 150 this->Echo(); 151 _error_("Could not find input of id "<<id); 152 } 149 if(offset<0) _error_("Could not find input of id "<<id); 153 150 154 151 Input* input=dynamic_cast<Input*>(this->inputs->GetObjectByOffset(offset)); … … 156 153 } 157 154 /*}}}*/ 158 /*FUNCTION DatasetInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int i ndex){{{*/159 void DatasetInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int i ndex){155 /*FUNCTION DatasetInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int id){{{*/ 156 void DatasetInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int id){ 160 157 158 int offset = -1; 161 159 _assert_(this->numids == this->inputs->Size()); 162 160 163 161 /*Get requested input within dataset*/ 164 if(index<0 || index > inputs->Size()-1) _error_("index requested (" << index << ") exceeds dataset size (" << inputs->Size() << ")");165 Input* input=dynamic_cast<Input*>(this->inputs->GetObjectByOffset(index));162 for(int i=0;i<this->numids;i++) if(this->ids[i]==id) offset=i; 163 if(offset<0) _error_("Could not find input of id "<<id); 166 164 165 Input* input=dynamic_cast<Input*>(this->inputs->GetObjectByOffset(offset)); 167 166 input->GetInputValue(pvalue,gauss); 168 167 } -
issm/trunk-jpl/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void DragCoefficientAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void DragCoefficientAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->DragCoefficientAbsGradient( weight_index);23 J+=element->DragCoefficientAbsGradient(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void DragCoefficientAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void DragCoefficientAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void RheologyBbarAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters , int weight_index){10 void RheologyBbarAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->RheologyBbarAbsGradient( weight_index);23 J+=element->RheologyBbarAbsGradient(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/RheologyBbarAbsGradientx/RheologyBbarAbsGradientx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void RheologyBbarAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void RheologyBbarAbsGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void SurfaceAbsVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void SurfaceAbsVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->SurfaceAbsVelMisfit( weight_index);23 J+=element->SurfaceAbsVelMisfit(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/SurfaceAbsVelMisfitx/SurfaceAbsVelMisfitx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void SurfaceAbsVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void SurfaceAbsVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.cpp
r15849 r16314 9 9 #include "../SurfaceAreax/SurfaceAreax.h" 10 10 11 void SurfaceAverageVelMisfitx(IssmDouble* pJ,FemModel* femmodel ,int weight_index){11 void SurfaceAverageVelMisfitx(IssmDouble* pJ,FemModel* femmodel){ 12 12 13 13 /*Intermediary*/ … … 24 24 for(int i=0;i<femmodel->elements->Size();i++){ 25 25 element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 26 J+=element->SurfaceAverageVelMisfit( weight_index);26 J+=element->SurfaceAverageVelMisfit(); 27 27 } 28 28 -
issm/trunk-jpl/src/c/modules/SurfaceAverageVelMisfitx/SurfaceAverageVelMisfitx.h
r15849 r16314 9 9 10 10 /* local prototypes: */ 11 void SurfaceAverageVelMisfitx(IssmDouble* pJ,FemModel* femmodel ,int weight_index);11 void SurfaceAverageVelMisfitx(IssmDouble* pJ,FemModel* femmodel); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void SurfaceLogVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void SurfaceLogVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->SurfaceLogVelMisfit( weight_index);23 J+=element->SurfaceLogVelMisfit(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/SurfaceLogVelMisfitx/SurfaceLogVelMisfitx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void SurfaceLogVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void SurfaceLogVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void SurfaceLogVxVyMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void SurfaceLogVxVyMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->SurfaceLogVxVyMisfit( weight_index);23 J+=element->SurfaceLogVxVyMisfit(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/SurfaceLogVxVyMisfitx/SurfaceLogVxVyMisfitx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void SurfaceLogVxVyMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void SurfaceLogVxVyMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void SurfaceRelVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void SurfaceRelVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->SurfaceRelVelMisfit( weight_index);23 J+=element->SurfaceRelVelMisfit(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/SurfaceRelVelMisfitx/SurfaceRelVelMisfitx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void SurfaceRelVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void SurfaceRelVelMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters , int weight_index){10 void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->ThicknessAbsMisfit( weight_index);23 J+=element->ThicknessAbsMisfit(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/ThicknessAcrossGradientx/ThicknessAcrossGradientx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void ThicknessAcrossGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void ThicknessAcrossGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->ThicknessAcrossGradient( weight_index);23 J+=element->ThicknessAcrossGradient(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/ThicknessAcrossGradientx/ThicknessAcrossGradientx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void ThicknessAcrossGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void ThicknessAcrossGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif -
issm/trunk-jpl/src/c/modules/ThicknessAlongGradientx/ThicknessAlongGradientx.cpp
r15838 r16314 8 8 #include "../../toolkits/toolkits.h" 9 9 10 void ThicknessAlongGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters ,int weight_index){10 void ThicknessAlongGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters){ 11 11 12 12 /*Intermediary*/ … … 21 21 for (i=0;i<elements->Size();i++){ 22 22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 23 J+=element->ThicknessAlongGradient( weight_index);23 J+=element->ThicknessAlongGradient(); 24 24 } 25 25 -
issm/trunk-jpl/src/c/modules/ThicknessAlongGradientx/ThicknessAlongGradientx.h
r15130 r16314 9 9 10 10 /* local prototypes: */ 11 void ThicknessAlongGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ,int weight_index);11 void ThicknessAlongGradientx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters); 12 12 13 13 #endif
Note:
See TracChangeset
for help on using the changeset viewer.