Changeset 12530
- Timestamp:
- 06/25/12 12:18:07 (13 years ago)
- Location:
- issm/trunk-jpl/src/c/objects/Inputs
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/objects/Inputs/BoolInput.cpp
r12529 r12530 23 23 } 24 24 /*}}}*/ 25 /*FUNCTION BoolInput::BoolInput(Issm PDouble* values){{{*/25 /*FUNCTION BoolInput::BoolInput(IssmDouble* values){{{*/ 26 26 BoolInput::BoolInput(int in_enum_type,IssmBool in_value){ 27 27 … … 98 98 /*}}}*/ 99 99 /*FUNCTION BoolInput::SpawnResult{{{*/ 100 ElementResult* BoolInput::SpawnResult(int step, Issm PDouble time){100 ElementResult* BoolInput::SpawnResult(int step, IssmDouble time){ 101 101 102 102 return new BoolElementResult(this->enum_type,this->value,step,time); … … 114 114 void BoolInput::GetInputValue(int* pvalue){_error2_("not supported yet!");} 115 115 /*}}}*/ 116 /*FUNCTION BoolInput::GetInputValue(Issm PDouble* pvalue){{{*/117 void BoolInput::GetInputValue(Issm PDouble* pvalue){_error2_("not supported yet!");}118 /*}}}*/ 119 /*FUNCTION BoolInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){{{*/120 void BoolInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){_error2_("not supported yet!");}121 /*}}}*/ 122 /*FUNCTION BoolInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){{{*/123 void BoolInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){_error2_("not supported yet!");}124 /*}}}*/ 125 /*FUNCTION BoolInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/126 void BoolInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");}127 /*}}}*/ 128 /*FUNCTION BoolInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/129 void BoolInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");}116 /*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue){{{*/ 117 void BoolInput::GetInputValue(IssmDouble* pvalue){_error2_("not supported yet!");} 118 /*}}}*/ 119 /*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/ 120 void BoolInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not supported yet!");} 121 /*}}}*/ 122 /*FUNCTION BoolInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/ 123 void BoolInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not supported yet!");} 124 /*}}}*/ 125 /*FUNCTION BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 126 void BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");} 127 /*}}}*/ 128 /*FUNCTION BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 129 void BoolInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");} 130 130 /*}}}*/ 131 131 /*FUNCTION BoolInput::ChangeEnum{{{*/ … … 135 135 /*}}}*/ 136 136 /*FUNCTION BoolInput::SquareMin{{{*/ 137 void BoolInput::SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){137 void BoolInput::SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){ 138 138 /*square of a bool is the bool itself: */ 139 139 *psquaremin=value; … … 141 141 /*}}}*/ 142 142 /*FUNCTION BoolInput::Scale{{{*/ 143 void BoolInput::Scale(Issm PDouble scale_factor){143 void BoolInput::Scale(IssmDouble scale_factor){ 144 144 /*a bool cannot be scaled: */ 145 145 } 146 146 /*}}}*/ 147 147 /*FUNCTION BoolInput::AXPY{{{*/ 148 void BoolInput::AXPY(Input* xinput,Issm PDouble scalar){148 void BoolInput::AXPY(Input* xinput,IssmDouble scalar){ 149 149 150 150 BoolInput* xboolinput=NULL; … … 167 167 /*}}}*/ 168 168 /*FUNCTION BoolInput::Constrain{{{*/ 169 void BoolInput::Constrain(Issm PDouble cm_min, IssmPDouble cm_max){169 void BoolInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){ 170 170 171 171 if(!xIsNan<IssmDouble>(cm_min)) if (this->value<cm_min)this->value=cm_min; … … 189 189 /*}}}*/ 190 190 /*FUNCTION BoolInput::GetValuesPtr{{{*/ 191 void BoolInput::GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){191 void BoolInput::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){ 192 192 193 193 _error2_("not supported yet!"); -
issm/trunk-jpl/src/c/objects/Inputs/BoolInput.h
r12494 r12530 40 40 Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");}; 41 41 Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");}; 42 ElementResult* SpawnResult(int step, Issm PDouble time);42 ElementResult* SpawnResult(int step, IssmDouble time); 43 43 void Configure(Parameters* parameters); 44 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};44 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 45 45 /*}}}*/ 46 46 /*numerics: {{{*/ 47 47 void GetInputValue(bool* pvalue); 48 48 void GetInputValue(int* pvalue); 49 void GetInputValue(Issm PDouble* pvalue);50 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss);51 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};52 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss);53 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};54 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};55 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);56 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);57 void GetInputAverage(Issm PDouble* pvalue){_error2_("not implemented yet");};58 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};59 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};60 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};61 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};62 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};63 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};64 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};49 void GetInputValue(IssmDouble* pvalue); 50 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss); 51 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 52 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss); 53 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 54 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss); 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss); 57 void GetInputAverage(IssmDouble* pvalue){_error2_("not implemented yet");}; 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 60 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 61 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 62 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 63 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 64 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 65 65 void ChangeEnum(int newenumtype); 66 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters);67 void ConstrainMin(Issm PDouble minimum){_error2_("not implemented yet");};68 Issm PDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for booleans");};69 Issm PDouble Max(void){_error2_("Max not implemented for booleans");};70 Issm PDouble MaxAbs(void){_error2_("Max not implemented for booleans");};71 Issm PDouble Min(void){_error2_("Min not implemented for booleans");};72 Issm PDouble MinAbs(void){_error2_("Min not implemented for booleans");};73 void Scale(Issm PDouble scale_factor);74 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};75 void AXPY(Input* xinput,Issm PDouble scalar);76 void Constrain(Issm PDouble cm_min, IssmPDouble cm_max);66 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters); 67 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");}; 68 IssmDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for booleans");}; 69 IssmDouble Max(void){_error2_("Max not implemented for booleans");}; 70 IssmDouble MaxAbs(void){_error2_("Max not implemented for booleans");}; 71 IssmDouble Min(void){_error2_("Min not implemented for booleans");}; 72 IssmDouble MinAbs(void){_error2_("Min not implemented for booleans");}; 73 void Scale(IssmDouble scale_factor); 74 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 75 void AXPY(Input* xinput,IssmDouble scalar); 76 void Constrain(IssmDouble cm_min, IssmDouble cm_max); 77 77 void Extrude(void); 78 78 void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");}; 79 79 void GetVectorFromInputs(Vector* vector,int* doflist); 80 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values);80 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values); 81 81 /*}}}*/ 82 82 -
issm/trunk-jpl/src/c/objects/Inputs/ControlInput.cpp
r12511 r12530 28 28 } 29 29 /*}}}*/ 30 /*FUNCTION ControlInput::ControlInput(int enum_type,int enum_input,Issm PDouble* pvalues,IssmPDouble* pmin,IssmPDouble* pmax,int id){{{*/31 ControlInput::ControlInput(int in_enum_type,int enum_input,Issm PDouble* pvalues,IssmPDouble* pmin,IssmPDouble* pmax,int id){30 /*FUNCTION ControlInput::ControlInput(int enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id){{{*/ 31 ControlInput::ControlInput(int in_enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id){ 32 32 33 33 control_id=id; … … 136 136 delete values; this->values=newvalues; 137 137 }/*}}}*/ 138 /*FUNCTION ControlInput::Constrain(Issm PDouble min, IssmPDouble max){{{*/139 void ControlInput::Constrain(Issm PDouble min, IssmPDouble max){138 /*FUNCTION ControlInput::Constrain(IssmDouble min, IssmDouble max){{{*/ 139 void ControlInput::Constrain(IssmDouble min, IssmDouble max){ 140 140 values->Constrain(min,max); 141 141 }/*}}}*/ … … 151 151 }/*}}}*/ 152 152 /*FUNCTION ControlInput::ScaleGradient{{{*/ 153 void ControlInput::ScaleGradient(Issm PDouble scaling_factor){153 void ControlInput::ScaleGradient(IssmDouble scaling_factor){ 154 154 if(!gradient) _error2_("Gradient of ControlInput " << EnumToStringx(enum_type) << " not found"); 155 155 gradient->Scale(scaling_factor); … … 186 186 }/*}}}*/ 187 187 /*FUNCTION ControlInput::SpawnResult{{{*/ 188 ElementResult* ControlInput::SpawnResult(int step, Issm PDouble time){188 ElementResult* ControlInput::SpawnResult(int step, IssmDouble time){ 189 189 return savedvalues->SpawnResult(step,time); 190 190 }/*}}}*/ … … 194 194 }/*}}}*/ 195 195 /*FUNCTION ControlInput::SpawnGradient{{{*/ 196 ElementResult* ControlInput::SpawnGradient(int step, Issm PDouble time){196 ElementResult* ControlInput::SpawnGradient(int step, IssmDouble time){ 197 197 _assert_(gradient); 198 198 return gradient->SpawnResult(step,time); … … 224 224 } 225 225 }/*}}}*/ 226 /*FUNCTION ControlInput::GetInputAverage(Issm PDouble* pvalue){{{*/227 void ControlInput::GetInputAverage(Issm PDouble* pvalue){226 /*FUNCTION ControlInput::GetInputAverage(IssmDouble* pvalue){{{*/ 227 void ControlInput::GetInputAverage(IssmDouble* pvalue){ 228 228 values->GetInputAverage(pvalue); 229 229 }/*}}}*/ … … 236 236 values->GetInputValue(pvalue); 237 237 }/*}}}*/ 238 /*FUNCTION ControlInput::GetInputValue(Issm PDouble* pvalue){{{*/239 void ControlInput::GetInputValue(Issm PDouble* pvalue){238 /*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue){{{*/ 239 void ControlInput::GetInputValue(IssmDouble* pvalue){ 240 240 values->GetInputValue(pvalue); 241 241 }/*}}}*/ 242 /*FUNCTION ControlInput::GetInputValue(Issm PDouble* pvalue){{{*/243 void ControlInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){242 /*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue){{{*/ 243 void ControlInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){ 244 244 values->GetInputValue(pvalue,gauss); 245 245 }/*}}}*/ 246 /*FUNCTION ControlInput::GetInputValue(Issm PDouble* pvalue){{{*/247 void ControlInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){246 /*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue){{{*/ 247 void ControlInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){ 248 248 values->GetInputValue(pvalue,gauss); 249 249 }/*}}}*/ 250 /*FUNCTION ControlInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/251 void ControlInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){250 /*FUNCTION ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 251 void ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){ 252 252 values->GetInputDerivativeValue(derivativevalues,xyz_list,gauss); 253 253 }/*}}}*/ 254 /*FUNCTION ControlInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/255 void ControlInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){254 /*FUNCTION ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 255 void ControlInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){ 256 256 values->GetInputDerivativeValue(derivativevalues,xyz_list,gauss); 257 257 }/*}}}*/ … … 264 264 }/*}}}*/ 265 265 /*FUNCTION ControlInput::UpdateValue{{{*/ 266 void ControlInput::UpdateValue(Issm PDouble scalar){266 void ControlInput::UpdateValue(IssmDouble scalar){ 267 267 if(!gradient) _error2_("Gradient of " << EnumToStringx(this->enum_type) << " not found"); 268 268 if(!savedvalues) _error2_("Values of " << EnumToStringx(this->enum_type) << " not found"); -
issm/trunk-jpl/src/c/objects/Inputs/ControlInput.h
r12494 r12530 27 27 /*ControlInput constructors, destructors: {{{*/ 28 28 ControlInput(); 29 ControlInput(int enum_type,int enum_input,Issm PDouble* pvalues,IssmPDouble* pmin,IssmPDouble* pmax,int id);29 ControlInput(int enum_type,int enum_input,IssmDouble* pvalues,IssmDouble* pmin,IssmDouble* pmax,int id); 30 30 ~ControlInput(); 31 31 /*}}}*/ … … 44 44 Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");}; 45 45 Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");}; 46 ElementResult* SpawnResult(int step, Issm PDouble time);47 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};46 ElementResult* SpawnResult(int step, IssmDouble time); 47 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 48 48 void Configure(Parameters* parameters); 49 49 /*}}}*/ … … 52 52 void GetInputValue(bool* pvalue); 53 53 void GetInputValue(int* pvalue); 54 void GetInputValue(Issm PDouble* pvalue);55 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss);56 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};57 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss);58 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};59 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};60 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);61 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);62 void GetInputAverage(Issm PDouble* pvalue);63 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};64 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};65 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};66 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};67 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};68 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};69 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};54 void GetInputValue(IssmDouble* pvalue); 55 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss); 56 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 57 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss); 58 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 59 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 60 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss); 61 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss); 62 void GetInputAverage(IssmDouble* pvalue); 63 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 64 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 65 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 66 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 67 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 68 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 69 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 70 70 void ChangeEnum(int newenumtype){_error2_("not implemented yet");}; 71 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};72 void ConstrainMin(Issm PDouble minimum){_error2_("not implemented yet");};73 void Scale(Issm PDouble scale_factor){_error2_("not implemented yet");};74 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};75 void AXPY(Input* xinput,Issm PDouble scalar){_error2_("not implemented yet");};71 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");}; 72 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");}; 73 void Scale(IssmDouble scale_factor){_error2_("not implemented yet");}; 74 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 75 void AXPY(Input* xinput,IssmDouble scalar){_error2_("not implemented yet");}; 76 76 void Constrain(void); 77 void Constrain(Issm PDouble min,IssmPDouble max);78 Issm PDouble InfinityNorm(void){_error2_("not implemented yet");};79 Issm PDouble Max(void){_error2_("not implemented yet");};80 Issm PDouble MaxAbs(void){_error2_("not implemented yet");};81 Issm PDouble Min(void){_error2_("not implemented yet");};82 Issm PDouble MinAbs(void){_error2_("not implemented yet");};77 void Constrain(IssmDouble min,IssmDouble max); 78 IssmDouble InfinityNorm(void){_error2_("not implemented yet");}; 79 IssmDouble Max(void){_error2_("not implemented yet");}; 80 IssmDouble MaxAbs(void){_error2_("not implemented yet");}; 81 IssmDouble Min(void){_error2_("not implemented yet");}; 82 IssmDouble MinAbs(void){_error2_("not implemented yet");}; 83 83 void Extrude(void); 84 84 void VerticallyIntegrate(Input* thickness_input); 85 85 void GetVectorFromInputs(Vector* vector,int* doflist,const char* data); 86 86 void GetVectorFromInputs(Vector* vector,int* doflist); 87 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};88 ElementResult* SpawnGradient(int step, Issm PDouble time);87 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error2_("not implemented yet");}; 88 ElementResult* SpawnGradient(int step, IssmDouble time); 89 89 void GetGradient(Vector* gradient_vec,int* doflist); 90 void ScaleGradient(Issm PDouble scale);90 void ScaleGradient(IssmDouble scale); 91 91 void SetGradient(Input* gradient_in); 92 void UpdateValue(Issm PDouble scalar);92 void UpdateValue(IssmDouble scalar); 93 93 void SaveValue(void); 94 94 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Inputs/DatasetInput.cpp
r12511 r12530 111 111 } 112 112 /*}}}*/ 113 /*FUNCTION DatasetInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,int index){{{*/114 void DatasetInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,int index){113 /*FUNCTION DatasetInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss,int index){{{*/ 114 void DatasetInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss,int index){ 115 115 116 116 /*Get requested input within dataset*/ -
issm/trunk-jpl/src/c/objects/Inputs/DatasetInput.h
r12494 r12530 40 40 Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");}; 41 41 Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");}; 42 ElementResult* SpawnResult(int step, Issm PDouble time){_error2_("not implemented yet");};43 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};42 ElementResult* SpawnResult(int step, IssmDouble time){_error2_("not implemented yet");}; 43 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 44 44 void Configure(Parameters* parameters); 45 45 /*}}}*/ … … 47 47 void GetInputValue(bool* pvalue){_error2_("not implemented yet");}; 48 48 void GetInputValue(int* pvalue){_error2_("not implemented yet");}; 49 void GetInputValue(Issm PDouble* pvalue){_error2_("not implemented yet");};50 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");};51 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};52 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};53 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index);54 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};55 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};56 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};57 void GetInputAverage(Issm PDouble* pvalue){_error2_("not implemented yet");};58 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};59 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};60 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};61 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};62 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};63 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};64 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};49 void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");}; 50 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");}; 51 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 52 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");}; 53 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index); 54 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 57 void GetInputAverage(IssmDouble* pvalue){_error2_("not implemented yet");}; 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 60 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 61 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 62 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 63 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 64 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 65 65 void ChangeEnum(int newenumtype){_error2_("not implemented yet");}; 66 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");};67 void ConstrainMin(Issm PDouble minimum){_error2_("not implemented yet");};68 void Scale(Issm PDouble scale_factor){_error2_("not implemented yet");};69 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};70 void AXPY(Input* xinput,Issm PDouble scalar){_error2_("not implemented yet");};66 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){_error2_("not implemented yet");}; 67 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");}; 68 void Scale(IssmDouble scale_factor){_error2_("not implemented yet");}; 69 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 70 void AXPY(Input* xinput,IssmDouble scalar){_error2_("not implemented yet");}; 71 71 void Constrain(void){_error2_("not implemented yet");}; 72 void Constrain(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};73 Issm PDouble InfinityNorm(void){_error2_("not implemented yet");};74 Issm PDouble Max(void){_error2_("not implemented yet");};75 Issm PDouble MaxAbs(void){_error2_("not implemented yet");};76 Issm PDouble Min(void){_error2_("not implemented yet");};77 Issm PDouble MinAbs(void){_error2_("not implemented yet");};72 void Constrain(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 73 IssmDouble InfinityNorm(void){_error2_("not implemented yet");}; 74 IssmDouble Max(void){_error2_("not implemented yet");}; 75 IssmDouble MaxAbs(void){_error2_("not implemented yet");}; 76 IssmDouble Min(void){_error2_("not implemented yet");}; 77 IssmDouble MinAbs(void){_error2_("not implemented yet");}; 78 78 void Extrude(void){_error2_("not implemented yet");}; 79 79 void VerticallyIntegrate(Input* thickness_input){_error2_("not implemented yet");}; 80 80 void GetVectorFromInputs(Vector* vector,int* doflist){_error2_("not implemented yet");}; 81 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){_error2_("not implemented yet");};82 ElementResult* SpawnGradient(int step, Issm PDouble time){_error2_("not implemented yet");};81 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error2_("not implemented yet");}; 82 ElementResult* SpawnGradient(int step, IssmDouble time){_error2_("not implemented yet");}; 83 83 void GetGradient(Vector* gradient_vec,int* doflist){_error2_("not implemented yet");}; 84 void ScaleGradient(Issm PDouble scale){_error2_("not implemented yet");};84 void ScaleGradient(IssmDouble scale){_error2_("not implemented yet");}; 85 85 void SetGradient(Input* gradient_in){_error2_("not implemented yet");}; 86 void UpdateValue(Issm PDouble scalar){_error2_("not implemented yet");};86 void UpdateValue(IssmDouble scalar){_error2_("not implemented yet");}; 87 87 void SaveValue(void){_error2_("not implemented yet");}; 88 88 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Inputs/DoubleInput.cpp
r12529 r12530 23 23 } 24 24 /*}}}*/ 25 /*FUNCTION DoubleInput::DoubleInput(Issm PDouble value){{{*/25 /*FUNCTION DoubleInput::DoubleInput(IssmDouble value){{{*/ 26 26 DoubleInput::DoubleInput(int in_enum_type,IssmDouble in_value){ 27 27 … … 98 98 /*}}}*/ 99 99 /*FUNCTION DoubleInput::SpawnResult{{{*/ 100 ElementResult* DoubleInput::SpawnResult(int step, Issm PDouble time){100 ElementResult* DoubleInput::SpawnResult(int step, IssmDouble time){ 101 101 102 102 return new DoubleElementResult(this->enum_type,this->value,step,time); … … 118 118 } 119 119 /*}}}*/ 120 /*FUNCTION DoubleInput::GetInputValue(Issm PDouble* pvalue){{{*/121 void DoubleInput::GetInputValue(Issm PDouble* pvalue){120 /*FUNCTION DoubleInput::GetInputValue(IssmDouble* pvalue){{{*/ 121 void DoubleInput::GetInputValue(IssmDouble* pvalue){ 122 122 123 123 /*return value*/ … … 125 125 } 126 126 /*}}}*/ 127 /*FUNCTION DoubleInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){{{*/128 void DoubleInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){*pvalue=this->value;}129 /*}}}*/ 130 /*FUNCTION DoubleInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){{{*/131 void DoubleInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){*pvalue=this->value;}132 /*}}}*/ 133 /*FUNCTION DoubleInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/134 void DoubleInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");}135 /*}}}*/ 136 /*FUNCTION DoubleInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/137 void DoubleInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");}138 /*}}}*/ 139 /*FUNCTION DoubleInput::GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){{{*/140 void DoubleInput::GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){127 /*FUNCTION DoubleInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/ 128 void DoubleInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){*pvalue=this->value;} 129 /*}}}*/ 130 /*FUNCTION DoubleInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/ 131 void DoubleInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){*pvalue=this->value;} 132 /*}}}*/ 133 /*FUNCTION DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 134 void DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");} 135 /*}}}*/ 136 /*FUNCTION DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 137 void DoubleInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");} 138 /*}}}*/ 139 /*FUNCTION DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 140 void DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){ 141 141 /*Epsilon is zero as vx is constant over the element*/ 142 142 for(int i=0;i<3;i++) epsilonvx[i]=0; 143 143 } 144 144 /*}}}*/ 145 /*FUNCTION DoubleInput::GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){{{*/146 void DoubleInput::GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){145 /*FUNCTION DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 146 void DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){ 147 147 /*Epsilon is zero as vy is constant over the element*/ 148 148 for(int i=0;i<3;i++) epsilonvy[i]=0; 149 149 } 150 150 /*}}}*/ 151 /*FUNCTION DoubleInput::GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/152 void DoubleInput::GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){151 /*FUNCTION DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 152 void DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){ 153 153 /*Epsilon is zero as vx is constant over the element*/ 154 154 for(int i=0;i<6;i++) epsilonvx[i]=0; 155 155 } 156 156 /*}}}*/ 157 /*FUNCTION DoubleInput::GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/158 void DoubleInput::GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){157 /*FUNCTION DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 158 void DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){ 159 159 /*Epsilon is zero as vy is constant over the element*/ 160 160 for(int i=0;i<6;i++) epsilonvy[i]=0; 161 161 } 162 162 /*}}}*/ 163 /*FUNCTION DoubleInput::GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/164 void DoubleInput::GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){163 /*FUNCTION DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 164 void DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){ 165 165 /*Epsilon is zero as vz is constant over the element*/ 166 166 for(int i=0;i<6;i++) epsilonvz[i]=0; 167 167 } 168 168 /*}}}*/ 169 /*FUNCTION DoubleInput::GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/170 void DoubleInput::GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){169 /*FUNCTION DoubleInput::GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 170 void DoubleInput::GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){ 171 171 /*Epsilon is zero as vx is constant over the element*/ 172 172 for(int i=0;i<5;i++) epsilonvx[i]=0; 173 173 } 174 174 /*}}}*/ 175 /*FUNCTION DoubleInput::GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/176 void DoubleInput::GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){175 /*FUNCTION DoubleInput::GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 176 void DoubleInput::GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){ 177 177 /*Epsilon is zero as vy is constant over the element*/ 178 178 for(int i=0;i<5;i++) epsilonvy[i]=0; … … 185 185 /*}}}*/ 186 186 /*FUNCTION DoubleInput::SquareMin{{{*/ 187 void DoubleInput::SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){188 189 /*square min of a Issm PDouble is the square of the IssmPDouble itself: */187 void DoubleInput::SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){ 188 189 /*square min of a IssmDouble is the square of the IssmDouble itself: */ 190 190 *psquaremin=pow(value,2); 191 191 } 192 192 /*}}}*/ 193 193 /*FUNCTION DoubleInput::Scale{{{*/ 194 void DoubleInput::Scale(Issm PDouble scale_factor){194 void DoubleInput::Scale(IssmDouble scale_factor){ 195 195 value=value*scale_factor; 196 196 } 197 197 /*}}}*/ 198 198 /*FUNCTION DoubleInput::ConstrainMin{{{*/ 199 void DoubleInput::ConstrainMin(Issm PDouble minimum){199 void DoubleInput::ConstrainMin(IssmDouble minimum){ 200 200 if (value<minimum) value=minimum; 201 201 } 202 202 /*}}}*/ 203 203 /*FUNCTION DoubleInput::AXPY{{{*/ 204 void DoubleInput::AXPY(Input* xinput,Issm PDouble scalar){205 206 DoubleInput* xIssm PDoubleinput=NULL;204 void DoubleInput::AXPY(Input* xinput,IssmDouble scalar){ 205 206 DoubleInput* xIssmDoubleinput=NULL; 207 207 208 208 /*xinput is of the same type, so cast it: */ 209 xIssm PDoubleinput=(DoubleInput*)xinput;209 xIssmDoubleinput=(DoubleInput*)xinput; 210 210 211 211 /*Carry out the AXPY operation depending on type:*/ … … 213 213 214 214 case DoubleInputEnum: 215 this->value=this->value+scalar*xIssm PDoubleinput->value;215 this->value=this->value+scalar*xIssmDoubleinput->value; 216 216 return; 217 217 … … 223 223 /*}}}*/ 224 224 /*FUNCTION DoubleInput::Constrain{{{*/ 225 void DoubleInput::Constrain(Issm PDouble cm_min, IssmPDouble cm_max){225 void DoubleInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){ 226 226 227 227 if(!xIsNan<IssmDouble>(cm_min)) if (this->value<cm_min)this->value=cm_min; … … 231 231 /*}}}*/ 232 232 /*FUNCTION DoubleInput::Max{{{*/ 233 Issm PDouble DoubleInput::Max(void){233 IssmDouble DoubleInput::Max(void){ 234 234 return this->value; 235 235 } 236 236 /*}}}*/ 237 237 /*FUNCTION DoubleInput::MaxAbs{{{*/ 238 Issm PDouble DoubleInput::MaxAbs(void){238 IssmDouble DoubleInput::MaxAbs(void){ 239 239 return fabs(this->value); 240 240 } 241 241 /*}}}*/ 242 242 /*FUNCTION DoubleInput::Min{{{*/ 243 Issm PDouble DoubleInput::Min(void){243 IssmDouble DoubleInput::Min(void){ 244 244 return this->value; 245 245 } 246 246 /*}}}*/ 247 247 /*FUNCTION DoubleInput::MinAbs{{{*/ 248 Issm PDouble DoubleInput::MinAbs(void){248 IssmDouble DoubleInput::MinAbs(void){ 249 249 return fabs(this->value); 250 250 } … … 258 258 /*}}}*/ 259 259 /*FUNCTION DoubleInput::GetValuesPtr{{{*/ 260 void DoubleInput::GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){260 void DoubleInput::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){ 261 261 262 262 _error2_("not supported yet!"); … … 265 265 /*}}}*/ 266 266 /*FUNCTION DoubleInput::GetInputAverage{{{*/ 267 void DoubleInput::GetInputAverage(Issm PDouble* pvalue){267 void DoubleInput::GetInputAverage(IssmDouble* pvalue){ 268 268 *pvalue=value; 269 269 } … … 273 273 274 274 /*Intermediaries*/ 275 Issm PDouble thickness_value;275 IssmDouble thickness_value; 276 276 277 277 /*Check that input provided is a thickness*/ … … 298 298 299 299 /*Intermediaries*/ 300 Issm PDouble Bvalue;300 IssmDouble Bvalue; 301 301 302 302 /*Check that inputB is of the same type*/ … … 318 318 319 319 /*Intermediaries*/ 320 Issm PDouble min;320 IssmDouble min; 321 321 322 322 /*Check that inputB is of the same type*/ … … 339 339 340 340 /*Intermediaries*/ 341 Issm PDouble max;341 IssmDouble max; 342 342 343 343 /*Check that inputB is of the same type*/ -
issm/trunk-jpl/src/c/objects/Inputs/DoubleInput.h
r12494 r12530 18 18 public: 19 19 int enum_type; 20 Issm PDouble value;20 IssmDouble value; 21 21 22 22 /*DoubleInput constructors, destructors: {{{*/ … … 39 39 Input* PointwiseMin(Input* inputB); 40 40 Input* PointwiseMax(Input* inputB); 41 ElementResult* SpawnResult(int step, Issm PDouble time);42 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};41 ElementResult* SpawnResult(int step, IssmDouble time); 42 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 43 43 void Configure(Parameters* parameters); 44 44 /*}}}*/ … … 46 46 void GetInputValue(bool* pvalue); 47 47 void GetInputValue(int* pvalue); 48 void GetInputValue(Issm PDouble* pvalue);49 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss);50 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};51 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss);52 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};53 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};54 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);55 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);56 void GetInputAverage(Issm PDouble* pvalue);57 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss);58 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss);59 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss);60 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss);61 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss);62 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss);63 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss);48 void GetInputValue(IssmDouble* pvalue); 49 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss); 50 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 51 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss); 52 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 53 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss); 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss); 56 void GetInputAverage(IssmDouble* pvalue); 57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss); 58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss); 59 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss); 60 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss); 61 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss); 62 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss); 63 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss); 64 64 void ChangeEnum(int newenumtype); 65 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters);66 void ConstrainMin(Issm PDouble minimum);67 void Scale(Issm PDouble scale_factor);68 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};69 void AXPY(Input* xinput,Issm PDouble scalar);70 void Constrain(Issm PDouble cm_min, IssmPDouble cm_max);71 Issm PDouble InfinityNorm(void){_error2_("not implemented yet");};72 Issm PDouble Max(void);73 Issm PDouble MaxAbs(void);74 Issm PDouble Min(void);75 Issm PDouble MinAbs(void);65 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters); 66 void ConstrainMin(IssmDouble minimum); 67 void Scale(IssmDouble scale_factor); 68 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 69 void AXPY(Input* xinput,IssmDouble scalar); 70 void Constrain(IssmDouble cm_min, IssmDouble cm_max); 71 IssmDouble InfinityNorm(void){_error2_("not implemented yet");}; 72 IssmDouble Max(void); 73 IssmDouble MaxAbs(void); 74 IssmDouble Min(void); 75 IssmDouble MinAbs(void); 76 76 void Extrude(void){_error2_("not supported yet");}; 77 77 void VerticallyIntegrate(Input* thickness_input); 78 78 void GetVectorFromInputs(Vector* vector,int* doflist); 79 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values);79 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values); 80 80 /*}}}*/ 81 81 -
issm/trunk-jpl/src/c/objects/Inputs/Input.h
r12426 r12530 25 25 virtual void GetInputValue(bool* pvalue)=0; 26 26 virtual void GetInputValue(int* pvalue)=0; 27 virtual void GetInputValue(Issm PDouble* pvalue)=0;28 virtual void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss)=0;29 virtual void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time)=0;30 virtual void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss)=0;31 virtual void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index)=0;32 virtual void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss,int index)=0;33 virtual void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss)=0;34 virtual void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss)=0;35 virtual void GetInputAverage(Issm PDouble* pvalue)=0;36 virtual void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss)=0;37 virtual void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss)=0;38 virtual void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss)=0;39 virtual void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss)=0;40 virtual void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss)=0;41 virtual void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss)=0;42 virtual void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss)=0;27 virtual void GetInputValue(IssmDouble* pvalue)=0; 28 virtual void GetInputValue(IssmDouble* pvalue,GaussTria* gauss)=0; 29 virtual void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time)=0; 30 virtual void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss)=0; 31 virtual void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index)=0; 32 virtual void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int index)=0; 33 virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss)=0; 34 virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss)=0; 35 virtual void GetInputAverage(IssmDouble* pvalue)=0; 36 virtual void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss)=0; 37 virtual void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss)=0; 38 virtual void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss)=0; 39 virtual void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss)=0; 40 virtual void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss)=0; 41 virtual void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss)=0; 42 virtual void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss)=0; 43 43 virtual void ChangeEnum(int newenumtype)=0; 44 44 virtual void Configure(Parameters* parameters)=0; 45 45 46 virtual void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters)=0;47 virtual void ConstrainMin(Issm PDouble minimum)=0;48 virtual Issm PDouble InfinityNorm(void)=0;49 virtual Issm PDouble MaxAbs(void)=0;50 virtual Issm PDouble MinAbs(void)=0;51 virtual Issm PDouble Max(void)=0;52 virtual Issm PDouble Min(void)=0;53 virtual void Scale(Issm PDouble scale_factor)=0;54 virtual void ArtificialNoise(Issm PDouble min,IssmPDouble max)=0;55 virtual void AXPY(Input* xinput,Issm PDouble scalar)=0;56 virtual void Constrain(Issm PDouble cm_min, IssmPDouble cm_max)=0;46 virtual void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters)=0; 47 virtual void ConstrainMin(IssmDouble minimum)=0; 48 virtual IssmDouble InfinityNorm(void)=0; 49 virtual IssmDouble MaxAbs(void)=0; 50 virtual IssmDouble MinAbs(void)=0; 51 virtual IssmDouble Max(void)=0; 52 virtual IssmDouble Min(void)=0; 53 virtual void Scale(IssmDouble scale_factor)=0; 54 virtual void ArtificialNoise(IssmDouble min,IssmDouble max)=0; 55 virtual void AXPY(Input* xinput,IssmDouble scalar)=0; 56 virtual void Constrain(IssmDouble cm_min, IssmDouble cm_max)=0; 57 57 virtual void VerticallyIntegrate(Input* thickness_input)=0; 58 58 virtual void Extrude()=0; 59 59 virtual void GetVectorFromInputs(Vector* vector,int* doflist)=0; 60 virtual void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values)=0;60 virtual void GetValuesPtr(IssmDouble** pvalues,int* pnum_values)=0; 61 61 62 62 virtual Input* SpawnTriaInput(int* indices)=0; … … 64 64 virtual Input* PointwiseMax(Input* inputmax)=0; 65 65 virtual Input* PointwiseMin(Input* inputmin)=0; 66 virtual ElementResult* SpawnResult(int step, Issm PDouble time)=0;66 virtual ElementResult* SpawnResult(int step, IssmDouble time)=0; 67 67 68 68 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Inputs/IntInput.cpp
r12529 r12530 23 23 } 24 24 /*}}}*/ 25 /*FUNCTION IntInput::IntInput(Issm PDouble* values){{{*/25 /*FUNCTION IntInput::IntInput(IssmDouble* values){{{*/ 26 26 IntInput::IntInput(int in_enum_type,IssmInt in_value){ 27 27 … … 97 97 /*}}}*/ 98 98 /*FUNCTION IntInput::SpawnResult{{{*/ 99 ElementResult* IntInput::SpawnResult(int step, Issm PDouble time){99 ElementResult* IntInput::SpawnResult(int step, IssmDouble time){ 100 100 101 101 _error2_("not supported yet!"); … … 113 113 } 114 114 /*}}}*/ 115 /*FUNCTION IntInput::GetInputValue(Issm PDouble* pvalue){{{*/116 void IntInput::GetInputValue(Issm PDouble* pvalue){117 _error2_("IntInput cannot return a Issm PDouble in parallel");115 /*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue){{{*/ 116 void IntInput::GetInputValue(IssmDouble* pvalue){ 117 _error2_("IntInput cannot return a IssmDouble in parallel"); 118 118 } 119 119 /*}}}*/ 120 /*FUNCTION IntInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){{{*/121 void IntInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){_error2_("not supported yet!");}120 /*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/ 121 void IntInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not supported yet!");} 122 122 /*}}}*/ 123 /*FUNCTION IntInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){{{*/124 void IntInput::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){_error2_("not supported yet!");}123 /*FUNCTION IntInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/ 124 void IntInput::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not supported yet!");} 125 125 /*}}}*/ 126 /*FUNCTION IntInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/127 void IntInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");}126 /*FUNCTION IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 127 void IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not supported yet!");} 128 128 /*}}}*/ 129 /*FUNCTION IntInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/130 void IntInput::GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");}129 /*FUNCTION IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 130 void IntInput::GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not supported yet!");} 131 131 /*}}}*/ 132 132 /*FUNCTION IntInput::ChangeEnum{{{*/ … … 136 136 /*}}}*/ 137 137 /*FUNCTION IntInput::SquareMin{{{*/ 138 void IntInput::SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){138 void IntInput::SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){ 139 139 140 140 /*square min of an integer is the square of the integer itself: */ 141 *psquaremin=pow((Issm PDouble)value,2);141 *psquaremin=pow((IssmDouble)value,2); 142 142 } 143 143 /*}}}*/ 144 144 /*FUNCTION IntInput::Scale{{{*/ 145 void IntInput::Scale(Issm PDouble scale_factor){146 Issm PDouble dvalue=(IssmPDouble)value*scale_factor;145 void IntInput::Scale(IssmDouble scale_factor){ 146 IssmDouble dvalue=(IssmDouble)value*scale_factor; 147 147 value=(int)dvalue; 148 148 } 149 149 /*}}}*/ 150 150 /*FUNCTION IntInput::AXPY{{{*/ 151 void IntInput::AXPY(Input* xinput,Issm PDouble scalar){151 void IntInput::AXPY(Input* xinput,IssmDouble scalar){ 152 152 153 Issm PDouble dvalue;153 IssmDouble dvalue; 154 154 IntInput* xintinput=NULL; 155 155 … … 161 161 162 162 case IntInputEnum: 163 dvalue=(Issm PDouble)this->value+scalar*(IssmPDouble)xintinput->value;163 dvalue=(IssmDouble)this->value+scalar*(IssmDouble)xintinput->value; 164 164 this->value=(int)dvalue; 165 165 return; … … 172 172 /*}}}*/ 173 173 /*FUNCTION IntInput::Constrain{{{*/ 174 void IntInput::Constrain(Issm PDouble cm_min, IssmPDouble cm_max){174 void IntInput::Constrain(IssmDouble cm_min, IssmDouble cm_max){ 175 175 176 176 if(!xIsNan<IssmDouble>(cm_min)) if (this->value<cm_min)this->value=(int)cm_min; … … 187 187 /*}}}*/ 188 188 /*FUNCTION IntInput::GetValuesPtr{{{*/ 189 void IntInput::GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){189 void IntInput::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){ 190 190 191 191 _error2_("not supported yet!"); -
issm/trunk-jpl/src/c/objects/Inputs/IntInput.h
r12494 r12530 40 40 Input* PointwiseMin(Input* inputB){_error2_("not implemented yet");}; 41 41 Input* PointwiseMax(Input* inputB){_error2_("not implemented yet");}; 42 ElementResult* SpawnResult(int step, Issm PDouble time);43 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};42 ElementResult* SpawnResult(int step, IssmDouble time); 43 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 44 44 void Configure(Parameters* parameters); 45 45 /*}}}*/ … … 47 47 void GetInputValue(bool* pvalue); 48 48 void GetInputValue(int* pvalue); 49 void GetInputValue(Issm PDouble* pvalue);50 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss);51 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};52 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss);53 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};54 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};55 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);56 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);57 void GetInputAverage(Issm PDouble* pvalue){_error2_("not implemented yet");};58 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};59 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};60 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};61 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};62 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};63 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};64 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};49 void GetInputValue(IssmDouble* pvalue); 50 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss); 51 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 52 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss); 53 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 54 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss); 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss); 57 void GetInputAverage(IssmDouble* pvalue){_error2_("not implemented yet");}; 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 60 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 61 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 62 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 63 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 64 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 65 65 void ChangeEnum(int newenumtype); 66 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters);67 void ConstrainMin(Issm PDouble minimum){_error2_("not implemented yet");};68 void Scale(Issm PDouble scale_factor);69 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};70 void AXPY(Input* xinput,Issm PDouble scalar);71 void Constrain(Issm PDouble cm_min, IssmPDouble cm_max);72 Issm PDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for integers");};73 Issm PDouble Max(void){_error2_("Max not implemented for integers");};74 Issm PDouble MaxAbs(void){_error2_("Max not implemented for integers");};75 Issm PDouble Min(void){_error2_("Min not implemented for integers");};76 Issm PDouble MinAbs(void){_error2_("Min not implemented for integers");};66 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters); 67 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");}; 68 void Scale(IssmDouble scale_factor); 69 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 70 void AXPY(Input* xinput,IssmDouble scalar); 71 void Constrain(IssmDouble cm_min, IssmDouble cm_max); 72 IssmDouble InfinityNorm(void){_error2_("InfinityNorm not implemented for integers");}; 73 IssmDouble Max(void){_error2_("Max not implemented for integers");}; 74 IssmDouble MaxAbs(void){_error2_("Max not implemented for integers");}; 75 IssmDouble Min(void){_error2_("Min not implemented for integers");}; 76 IssmDouble MinAbs(void){_error2_("Min not implemented for integers");}; 77 77 void Extrude(void){_error2_("not supported yet");}; 78 78 void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");}; 79 79 void GetVectorFromInputs(Vector* vector,int* doflist); 80 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values);80 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values); 81 81 /*}}}*/ 82 82 -
issm/trunk-jpl/src/c/objects/Inputs/PentaP1Input.cpp
r12529 r12530 23 23 } 24 24 /*}}}*/ 25 /*FUNCTION PentaP1Input::PentaP1Input(int in_enum_type,Issm PDouble* values){{{*/26 PentaP1Input::PentaP1Input(int in_enum_type,Issm PDouble* in_values)25 /*FUNCTION PentaP1Input::PentaP1Input(int in_enum_type,IssmDouble* values){{{*/ 26 PentaP1Input::PentaP1Input(int in_enum_type,IssmDouble* in_values) 27 27 :PentaRef(1) 28 28 { … … 98 98 /*output*/ 99 99 TriaP1Input* outinput=NULL; 100 Issm PDouble newvalues[3];100 IssmDouble newvalues[3]; 101 101 102 102 /*Loop over the new indices*/ … … 119 119 /*}}}*/ 120 120 /*FUNCTION PentaP1Input::SpawnResult{{{*/ 121 ElementResult* PentaP1Input::SpawnResult(int step, Issm PDouble time){121 ElementResult* PentaP1Input::SpawnResult(int step, IssmDouble time){ 122 122 123 123 return new PentaP1ElementResult(this->enum_type,this->values,step,time); … … 127 127 128 128 /*Object functions*/ 129 /*FUNCTION PentaP1Input::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){{{*/130 void PentaP1Input::GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){129 /*FUNCTION PentaP1Input::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/ 130 void PentaP1Input::GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){ 131 131 132 132 /*Call PentaRef function*/ … … 135 135 } 136 136 /*}}}*/ 137 /*FUNCTION PentaP1Input::GetInputDerivativeValue(Issm PDouble* p, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/138 void PentaP1Input::GetInputDerivativeValue(Issm PDouble* p, IssmPDouble* xyz_list, GaussPenta* gauss){137 /*FUNCTION PentaP1Input::GetInputDerivativeValue(IssmDouble* p, IssmPDouble* xyz_list, GaussPenta* gauss){{{*/ 138 void PentaP1Input::GetInputDerivativeValue(IssmDouble* p, IssmPDouble* xyz_list, GaussPenta* gauss){ 139 139 140 140 /*Call PentaRef function*/ … … 143 143 /*}}}*/ 144 144 /*FUNCTION PentaP1Input::GetVxStrainRate3d{{{*/ 145 void PentaP1Input::GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){145 void PentaP1Input::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){ 146 146 int i,j; 147 147 148 148 const int numnodes=6; 149 149 const int DOFVELOCITY=3; 150 Issm PDouble B[8][27];151 Issm PDouble B_reduced[6][DOFVELOCITY*numnodes];152 Issm PDouble velocity[numnodes][DOFVELOCITY];150 IssmDouble B[8][27]; 151 IssmDouble B_reduced[6][DOFVELOCITY*numnodes]; 152 IssmDouble velocity[numnodes][DOFVELOCITY]; 153 153 154 154 /*Get B matrix: */ … … 188 188 /*}}}*/ 189 189 /*FUNCTION PentaP1Input::GetVyStrainRate3d{{{*/ 190 void PentaP1Input::GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){190 void PentaP1Input::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){ 191 191 int i,j; 192 192 193 193 const int numnodes=6; 194 194 const int DOFVELOCITY=3; 195 Issm PDouble B[8][27];196 Issm PDouble B_reduced[6][DOFVELOCITY*numnodes];197 Issm PDouble velocity[numnodes][DOFVELOCITY];195 IssmDouble B[8][27]; 196 IssmDouble B_reduced[6][DOFVELOCITY*numnodes]; 197 IssmDouble velocity[numnodes][DOFVELOCITY]; 198 198 199 199 /*Get B matrix: */ … … 233 233 /*}}}*/ 234 234 /*FUNCTION PentaP1Input::GetVzStrainRate3d{{{*/ 235 void PentaP1Input::GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){235 void PentaP1Input::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){ 236 236 int i,j; 237 237 238 238 const int numnodes=6; 239 239 const int DOFVELOCITY=3; 240 Issm PDouble B[8][27];241 Issm PDouble B_reduced[6][DOFVELOCITY*numnodes];242 Issm PDouble velocity[numnodes][DOFVELOCITY];240 IssmDouble B[8][27]; 241 IssmDouble B_reduced[6][DOFVELOCITY*numnodes]; 242 IssmDouble velocity[numnodes][DOFVELOCITY]; 243 243 244 244 /*Get B matrix: */ … … 279 279 /*}}}*/ 280 280 /*FUNCTION PentaP1Input::GetVxStrainRate3dPattyn{{{*/ 281 void PentaP1Input::GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){282 283 int i; 284 const int numnodes=6; 285 Issm PDouble B[5][NDOF2*numnodes];286 Issm PDouble velocity[numnodes][NDOF2];281 void PentaP1Input::GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){ 282 283 int i; 284 const int numnodes=6; 285 IssmDouble B[5][NDOF2*numnodes]; 286 IssmDouble velocity[numnodes][NDOF2]; 287 287 288 288 /*Get B matrix: */ … … 303 303 /*}}}*/ 304 304 /*FUNCTION PentaP1Input::GetVyStrainRate3dPattyn{{{*/ 305 void PentaP1Input::GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){306 307 int i; 308 const int numnodes=6; 309 Issm PDouble B[5][NDOF2*numnodes];310 Issm PDouble velocity[numnodes][NDOF2];305 void PentaP1Input::GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){ 306 307 int i; 308 const int numnodes=6; 309 IssmDouble B[5][NDOF2*numnodes]; 310 IssmDouble velocity[numnodes][NDOF2]; 311 311 312 312 /*Get B matrix: */ … … 332 332 /*}}}*/ 333 333 /*FUNCTION PentaP1Input::GetInputAverage{{{*/ 334 void PentaP1Input::GetInputAverage(Issm PDouble* pvalue){334 void PentaP1Input::GetInputAverage(IssmDouble* pvalue){ 335 335 *pvalue=1./6.*(values[0]+values[1]+values[2]+values[3]+values[4]+values[5]); 336 336 } … … 339 339 /*Intermediary*/ 340 340 /*FUNCTION PentaP1Input::SquareMin{{{*/ 341 void PentaP1Input::SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){342 343 int i; 344 const int numnodes=6; 345 Issm PDouble valuescopy[numnodes];346 Issm PDouble squaremin;341 void PentaP1Input::SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){ 342 343 int i; 344 const int numnodes=6; 345 IssmDouble valuescopy[numnodes]; 346 IssmDouble squaremin; 347 347 348 348 /*First, copy values, to process units if requested: */ … … 362 362 /*}}}*/ 363 363 /*FUNCTION PentaP1Input::ConstrainMin{{{*/ 364 void PentaP1Input::ConstrainMin(Issm PDouble minimum){364 void PentaP1Input::ConstrainMin(IssmDouble minimum){ 365 365 366 366 int i; … … 371 371 /*}}}*/ 372 372 /*FUNCTION PentaP1Input::InfinityNorm{{{*/ 373 Issm PDouble PentaP1Input::InfinityNorm(void){373 IssmDouble PentaP1Input::InfinityNorm(void){ 374 374 375 375 /*Output*/ 376 376 const int numnodes=6; 377 Issm PDouble norm=0;377 IssmDouble norm=0; 378 378 379 379 for(int i=0;i<numnodes;i++) if(fabs(values[i])>norm) norm=fabs(values[i]); … … 382 382 /*}}}*/ 383 383 /*FUNCTION PentaP1Input::Max{{{*/ 384 Issm PDouble PentaP1Input::Max(void){385 386 const int numnodes=6; 387 Issm PDouble max=values[0];384 IssmDouble PentaP1Input::Max(void){ 385 386 const int numnodes=6; 387 IssmDouble max=values[0]; 388 388 389 389 for(int i=1;i<numnodes;i++){ … … 394 394 /*}}}*/ 395 395 /*FUNCTION PentaP1Input::MaxAbs{{{*/ 396 Issm PDouble PentaP1Input::MaxAbs(void){397 398 const int numnodes=6; 399 Issm PDouble max=fabs(values[0]);396 IssmDouble PentaP1Input::MaxAbs(void){ 397 398 const int numnodes=6; 399 IssmDouble max=fabs(values[0]); 400 400 401 401 for(int i=1;i<numnodes;i++){ … … 406 406 /*}}}*/ 407 407 /*FUNCTION PentaP1Input::Min{{{*/ 408 Issm PDouble PentaP1Input::Min(void){409 410 const int numnodes=6; 411 Issm PDouble min=values[0];408 IssmDouble PentaP1Input::Min(void){ 409 410 const int numnodes=6; 411 IssmDouble min=values[0]; 412 412 413 413 for(int i=1;i<numnodes;i++){ … … 418 418 /*}}}*/ 419 419 /*FUNCTION PentaP1Input::MinAbs{{{*/ 420 Issm PDouble PentaP1Input::MinAbs(void){421 422 const int numnodes=6; 423 Issm PDouble min=fabs(values[0]);420 IssmDouble PentaP1Input::MinAbs(void){ 421 422 const int numnodes=6; 423 IssmDouble min=fabs(values[0]); 424 424 425 425 for(int i=1;i<numnodes;i++){ … … 430 430 /*}}}*/ 431 431 /*FUNCTION PentaP1Input::Scale{{{*/ 432 void PentaP1Input::Scale(Issm PDouble scale_factor){432 void PentaP1Input::Scale(IssmDouble scale_factor){ 433 433 434 434 int i; … … 439 439 /*}}}*/ 440 440 /*FUNCTION PentaP1Input::AXPY{{{*/ 441 void PentaP1Input::AXPY(Input* xinput,Issm PDouble scalar){441 void PentaP1Input::AXPY(Input* xinput,IssmDouble scalar){ 442 442 443 443 int i; … … 466 466 /*}}}*/ 467 467 /*FUNCTION PentaP1Input::Constrain{{{*/ 468 void PentaP1Input::Constrain(Issm PDouble cm_min, IssmPDouble cm_max){468 void PentaP1Input::Constrain(IssmDouble cm_min, IssmDouble cm_max){ 469 469 470 470 int i; … … 492 492 const int numnodes = 6; 493 493 int num_thickness_values; 494 Issm PDouble *thickness_values = NULL;494 IssmDouble *thickness_values = NULL; 495 495 496 496 /*Check that input provided is a thickness*/ … … 526 526 int B_numvalues; 527 527 const int numnodes = 6; 528 Issm PDouble AdotBvalues[numnodes];528 IssmDouble AdotBvalues[numnodes]; 529 529 530 530 /*Check that inputB is of the same type*/ … … 557 557 int B_numvalues; 558 558 const int numnodes = 6; 559 Issm PDouble minvalues[numnodes];559 IssmDouble minvalues[numnodes]; 560 560 561 561 /*Check that inputB is of the same type*/ … … 588 588 int B_numvalues; 589 589 const int numnodes = 6; 590 Issm PDouble maxvalues[numnodes];590 IssmDouble maxvalues[numnodes]; 591 591 592 592 /*Check that inputB is of the same type*/ … … 616 616 } /*}}}*/ 617 617 /*FUNCTION PentaP1Input::GetValuesPtr{{{*/ 618 void PentaP1Input::GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){618 void PentaP1Input::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){ 619 619 620 620 *pvalues=this->values; -
issm/trunk-jpl/src/c/objects/Inputs/PentaP1Input.h
r12494 r12530 19 19 /*just hold 6 values for 6 vertices: */ 20 20 int enum_type; 21 Issm PDouble values[6];21 IssmDouble values[6]; 22 22 23 23 /*PentaP1Input constructors, destructors: {{{*/ 24 24 PentaP1Input(); 25 PentaP1Input(int enum_type,Issm PDouble* values);25 PentaP1Input(int enum_type,IssmDouble* values); 26 26 ~PentaP1Input(); 27 27 /*}}}*/ … … 40 40 Input* PointwiseMin(Input* inputB); 41 41 Input* PointwiseMax(Input* inputB); 42 ElementResult* SpawnResult(int step, Issm PDouble time);43 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};42 ElementResult* SpawnResult(int step, IssmDouble time); 43 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 44 44 void Configure(Parameters* parameters); 45 45 /*}}}*/ … … 47 47 void GetInputValue(bool* pvalue){_error2_("not implemented yet");}; 48 48 void GetInputValue(int* pvalue){_error2_("not implemented yet");}; 49 void GetInputValue(Issm PDouble* pvalue){_error2_("not implemented yet");};50 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");};51 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};52 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss);53 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};54 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};55 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};56 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss);57 void GetInputAverage(Issm PDouble* pvalue);58 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};59 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};60 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss);61 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss);62 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss);63 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss);64 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss);49 void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");}; 50 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss){_error2_("not implemented yet");}; 51 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 52 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss); 53 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 54 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss); 57 void GetInputAverage(IssmDouble* pvalue); 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 60 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss); 61 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss); 62 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss); 63 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss); 64 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss); 65 65 void ChangeEnum(int newenumtype); 66 66 67 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters);68 void ConstrainMin(Issm PDouble minimum);69 void Scale(Issm PDouble scale_factor);70 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};71 void AXPY(Input* xinput,Issm PDouble scalar);72 void Constrain(Issm PDouble cm_min, IssmPDouble cm_max);73 Issm PDouble InfinityNorm(void);74 Issm PDouble Max(void);75 Issm PDouble MaxAbs(void);76 Issm PDouble Min(void);77 Issm PDouble MinAbs(void);67 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters); 68 void ConstrainMin(IssmDouble minimum); 69 void Scale(IssmDouble scale_factor); 70 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 71 void AXPY(Input* xinput,IssmDouble scalar); 72 void Constrain(IssmDouble cm_min, IssmDouble cm_max); 73 IssmDouble InfinityNorm(void); 74 IssmDouble Max(void); 75 IssmDouble MaxAbs(void); 76 IssmDouble Min(void); 77 IssmDouble MinAbs(void); 78 78 void Extrude(void); 79 79 void VerticallyIntegrate(Input* thickness_input); 80 80 void GetVectorFromInputs(Vector* vector,int* doflist); 81 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values);81 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values); 82 82 /*}}}*/ 83 83 -
issm/trunk-jpl/src/c/objects/Inputs/TransientInput.cpp
r12511 r12530 46 46 /*FUNCTION TransientInput::~TransientInput{{{*/ 47 47 TransientInput::~TransientInput(){ 48 xDelete< double>(this->timesteps);48 xDelete<IssmDouble>(this->timesteps); 49 49 this->timesteps=NULL; 50 50 this->numtimesteps=0; … … 100 100 output->enum_type=this->enum_type; 101 101 output->numtimesteps=this->numtimesteps; 102 output->timesteps=xNew<Issm PDouble>(this->numtimesteps);103 memcpy(output->timesteps,this->timesteps,this->numtimesteps*sizeof(Issm PDouble));102 output->timesteps=xNew<IssmDouble>(this->numtimesteps); 103 memcpy(output->timesteps,this->timesteps,this->numtimesteps*sizeof(IssmDouble)); 104 104 output->inputs=(Inputs*)this->inputs->Copy(); 105 105 output->parameters=this->parameters; … … 128 128 outinput->enum_type=this->enum_type; 129 129 outinput->numtimesteps=this->numtimesteps; 130 outinput->timesteps=xNew<Issm PDouble>(this->numtimesteps);131 memcpy(outinput->timesteps,this->timesteps,this->numtimesteps*sizeof(Issm PDouble));130 outinput->timesteps=xNew<IssmDouble>(this->numtimesteps); 131 memcpy(outinput->timesteps,this->timesteps,this->numtimesteps*sizeof(IssmDouble)); 132 132 outinput->inputs=(Inputs*)this->inputs->SpawnTriaInputs(indices); 133 133 outinput->parameters=this->parameters; … … 139 139 /*}}}*/ 140 140 /*FUNCTION TransientInput::SpawnResult{{{*/ 141 ElementResult* TransientInput::SpawnResult(int step, Issm PDouble time){141 ElementResult* TransientInput::SpawnResult(int step, IssmDouble time){ 142 142 143 143 ElementResult* elementresult=NULL; … … 156 156 157 157 /*Object functions*/ 158 /*FUNCTION TransientInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){{{*/159 void TransientInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){160 Issm PDouble time;158 /*FUNCTION TransientInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/ 159 void TransientInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){ 160 IssmDouble time; 161 161 162 162 /*First, recover current time from parameters: */ … … 172 172 } 173 173 /*}}}*/ 174 /*FUNCTION TransientInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){{{*/175 void TransientInput::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){174 /*FUNCTION TransientInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){{{*/ 175 void TransientInput::GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){ 176 176 177 177 /*Retrieve interpolated values for this time step: */ … … 184 184 } 185 185 /*}}}*/ 186 /*FUNCTION TransientInput::GetInputDerivativeValue(Issm PDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){{{*/187 void TransientInput::GetInputDerivativeValue(Issm PDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){188 189 Issm PDouble time;186 /*FUNCTION TransientInput::GetInputDerivativeValue(IssmDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 187 void TransientInput::GetInputDerivativeValue(IssmDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){ 188 189 IssmDouble time; 190 190 191 191 /*First, recover current time from parameters: */ … … 208 208 /*}}}*/ 209 209 /*FUNCTION TransientInput::GetInputAverage{{{*/ 210 void TransientInput::GetInputAverage(Issm PDouble* pvalue){210 void TransientInput::GetInputAverage(IssmDouble* pvalue){ 211 211 212 Issm PDouble time;212 IssmDouble time; 213 213 214 214 /*First, recover current time from parameters: */ … … 228 228 /*Intermediary*/ 229 229 /*FUNCTION TransientInput::AddTimeInput{{{*/ 230 void TransientInput::AddTimeInput(Input* input,Issm PDouble time){230 void TransientInput::AddTimeInput(Input* input,IssmDouble time){ 231 231 232 232 /*insert values at time step: */ … … 234 234 235 235 //copy timesteps, add the new time, delete previous timesteps, and add the new input: inputs->AddObject(input); 236 Issm PDouble* old_timesteps=NULL;236 IssmDouble* old_timesteps=NULL; 237 237 238 238 if (this->numtimesteps > 0){ 239 old_timesteps=xNew<Issm PDouble>(this->numtimesteps);240 memcpy(old_timesteps,this->timesteps,this->numtimesteps*sizeof(Issm PDouble));241 xDelete< double>(this->timesteps);239 old_timesteps=xNew<IssmDouble>(this->numtimesteps); 240 memcpy(old_timesteps,this->timesteps,this->numtimesteps*sizeof(IssmDouble)); 241 xDelete<IssmDouble>(this->timesteps); 242 242 } 243 243 244 244 this->numtimesteps=this->numtimesteps+1; 245 this->timesteps=xNew<Issm PDouble>(this->numtimesteps);245 this->timesteps=xNew<IssmDouble>(this->numtimesteps); 246 246 247 247 if (this->numtimesteps > 1){ 248 memcpy(this->timesteps,old_timesteps,(this->numtimesteps-1)*sizeof(Issm PDouble));249 xDelete< double>(old_timesteps);248 memcpy(this->timesteps,old_timesteps,(this->numtimesteps-1)*sizeof(IssmDouble)); 249 xDelete<IssmDouble>(old_timesteps); 250 250 } 251 251 … … 257 257 /*}}}*/ 258 258 /*FUNCTION TransientInput::SquareMin{{{*/ 259 void TransientInput::SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){260 261 Issm PDouble time;259 void TransientInput::SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){ 260 261 IssmDouble time; 262 262 263 263 /*First, recover current time from parameters: */ … … 275 275 /*}}}*/ 276 276 /*FUNCTION TransientInput::InfinityNorm{{{*/ 277 Issm PDouble TransientInput::InfinityNorm(void){278 279 Issm PDouble time;280 Issm PDouble infnorm;277 IssmDouble TransientInput::InfinityNorm(void){ 278 279 IssmDouble time; 280 IssmDouble infnorm; 281 281 282 282 /*First, recover current time from parameters: */ … … 295 295 /*}}}*/ 296 296 /*FUNCTION TransientInput::Max{{{*/ 297 Issm PDouble TransientInput::Max(void){298 299 Issm PDouble time;300 Issm PDouble max;297 IssmDouble TransientInput::Max(void){ 298 299 IssmDouble time; 300 IssmDouble max; 301 301 302 302 /*First, recover current time from parameters: */ … … 315 315 /*}}}*/ 316 316 /*FUNCTION TransientInput::MaxAbs{{{*/ 317 Issm PDouble TransientInput::MaxAbs(void){318 319 Issm PDouble time;320 Issm PDouble maxabs;317 IssmDouble TransientInput::MaxAbs(void){ 318 319 IssmDouble time; 320 IssmDouble maxabs; 321 321 322 322 /*First, recover current time from parameters: */ … … 336 336 /*}}}*/ 337 337 /*FUNCTION TransientInput::Min{{{*/ 338 Issm PDouble TransientInput::Min(void){339 340 Issm PDouble time;341 Issm PDouble min;338 IssmDouble TransientInput::Min(void){ 339 340 IssmDouble time; 341 IssmDouble min; 342 342 343 343 /*First, recover current time from parameters: */ … … 357 357 /*}}}*/ 358 358 /*FUNCTION TransientInput::MinAbs{{{*/ 359 Issm PDouble TransientInput::MinAbs(void){360 361 Issm PDouble time;362 Issm PDouble minabs;359 IssmDouble TransientInput::MinAbs(void){ 360 361 IssmDouble time; 362 IssmDouble minabs; 363 363 364 364 /*First, recover current time from parameters: */ … … 379 379 void TransientInput::GetVectorFromInputs(Vector* vector,int* doflist){ 380 380 381 Issm PDouble time;381 IssmDouble time; 382 382 383 383 /*First, recover current time from parameters: */ … … 394 394 } /*}}}*/ 395 395 /*FUNCTION TransientInput::GetTimeInput{{{*/ 396 Input* TransientInput::GetTimeInput(Issm PDouble intime){396 Input* TransientInput::GetTimeInput(IssmDouble intime){ 397 397 398 398 int i,j; 399 Issm PDouble deltat;400 Issm PDouble alpha1,alpha2;399 IssmDouble deltat; 400 IssmDouble alpha1,alpha2; 401 401 bool found=false; 402 402 Input* input=NULL; -
issm/trunk-jpl/src/c/objects/Inputs/TransientInput.h
r12494 r12530 20 20 int numtimesteps; 21 21 Inputs* inputs; 22 Issm PDouble* timesteps;22 IssmDouble* timesteps; 23 23 Parameters* parameters; //to find current time. 24 24 … … 27 27 TransientInput(int enum_type); 28 28 ~TransientInput(); 29 void AddTimeInput(Input* input,Issm PDouble time);29 void AddTimeInput(Input* input,IssmDouble time); 30 30 /*}}}*/ 31 31 /*Object virtual functions definitions:{{{*/ … … 43 43 Input* PointwiseMin(Input* forcingB){_error2_("not implemented yet");}; 44 44 Input* PointwiseMax(Input* forcingB){_error2_("not implemented yet");}; 45 ElementResult* SpawnResult(int step, Issm PDouble time);45 ElementResult* SpawnResult(int step, IssmDouble time); 46 46 void Configure(Parameters* parameters); 47 47 /*}}}*/ … … 49 49 void GetInputValue(bool* pvalue){_error2_("not implemented yet");}; 50 50 void GetInputValue(int* pvalue){_error2_("not implemented yet");}; 51 void GetInputValue(Issm PDouble* pvalue){_error2_("not implemented yet");};52 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss);53 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time);54 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};55 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};56 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");};57 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);58 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};59 void GetInputAverage(Issm PDouble* pvalue);60 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};61 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");};62 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};63 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};64 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};65 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};66 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};51 void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");}; 52 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss); 53 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time); 54 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");}; 55 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 56 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss ,int index){_error2_("not implemented yet");}; 57 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss); 58 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 59 void GetInputAverage(IssmDouble* pvalue); 60 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 61 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){_error2_("not implemented yet");}; 62 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 63 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 64 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 65 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 66 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 67 67 void ChangeEnum(int newenumtype); 68 68 69 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters);70 void ConstrainMin(Issm PDouble minimum){_error2_("not implemented yet");};71 void Scale(Issm PDouble scale_factor){_error2_("not implemented yet");};72 void ArtificialNoise(Issm PDouble min,IssmPDouble max){_error2_("not implemented yet");};73 void AXPY(Input* xforcing,Issm PDouble scalar){_error2_("not implemented yet");};74 void Constrain(Issm PDouble cm_min, IssmPDouble cm_max){_error2_("not implemented yet");};75 Issm PDouble InfinityNorm(void);76 Issm PDouble Max(void);77 Issm PDouble MaxAbs(void);78 Issm PDouble Min(void);79 Issm PDouble MinAbs(void);69 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters); 70 void ConstrainMin(IssmDouble minimum){_error2_("not implemented yet");}; 71 void Scale(IssmDouble scale_factor){_error2_("not implemented yet");}; 72 void ArtificialNoise(IssmDouble min,IssmDouble max){_error2_("not implemented yet");}; 73 void AXPY(Input* xforcing,IssmDouble scalar){_error2_("not implemented yet");}; 74 void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error2_("not implemented yet");}; 75 IssmDouble InfinityNorm(void); 76 IssmDouble Max(void); 77 IssmDouble MaxAbs(void); 78 IssmDouble Min(void); 79 IssmDouble MinAbs(void); 80 80 void Extrude(void){_error2_("not supported yet");} 81 81 void VerticallyIntegrate(Input* thickness_forcing){_error2_("not supported yet");}; 82 82 void GetVectorFromInputs(Vector* vector,int* doflist); 83 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){_error2_("not supported yet");};84 void GetTimeValues(Issm PDouble* values,IssmPDouble time){_error2_("not implemented yet");};85 Input* GetTimeInput(Issm PDouble time);83 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error2_("not supported yet");}; 84 void GetTimeValues(IssmDouble* values,IssmDouble time){_error2_("not implemented yet");}; 85 Input* GetTimeInput(IssmDouble time); 86 86 /*}}}*/ 87 87 -
issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.cpp
r12529 r12530 23 23 } 24 24 /*}}}*/ 25 /*FUNCTION TriaP1Input::TriaP1Input(int in_enum_type,Issm PDouble* values){{{*/26 TriaP1Input::TriaP1Input(int in_enum_type,Issm PDouble* in_values)25 /*FUNCTION TriaP1Input::TriaP1Input(int in_enum_type,IssmDouble* values){{{*/ 26 TriaP1Input::TriaP1Input(int in_enum_type,IssmDouble* in_values) 27 27 :TriaRef(1) 28 28 { … … 108 108 /*}}}*/ 109 109 /*FUNCTION TriaP1Input::SpawnResult{{{*/ 110 ElementResult* TriaP1Input::SpawnResult(int step, Issm PDouble time){110 ElementResult* TriaP1Input::SpawnResult(int step, IssmDouble time){ 111 111 112 112 return new TriaP1ElementResult(this->enum_type,this->values,step,time); … … 116 116 117 117 /*Object functions*/ 118 /*FUNCTION TriaP1Input::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){{{*/119 void TriaP1Input::GetInputValue(Issm PDouble* pvalue,GaussTria* gauss){118 /*FUNCTION TriaP1Input::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){{{*/ 119 void TriaP1Input::GetInputValue(IssmDouble* pvalue,GaussTria* gauss){ 120 120 121 121 /*Call TriaRef function*/ … … 124 124 } 125 125 /*}}}*/ 126 /*FUNCTION TriaP1Input::GetInputDerivativeValue(Issm PDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){{{*/127 void TriaP1Input::GetInputDerivativeValue(Issm PDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){126 /*FUNCTION TriaP1Input::GetInputDerivativeValue(IssmDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){{{*/ 127 void TriaP1Input::GetInputDerivativeValue(IssmDouble* p, IssmPDouble* xyz_list, GaussTria* gauss){ 128 128 129 129 /*Call TriaRef function*/ … … 132 132 /*}}}*/ 133 133 /*FUNCTION TriaP1Input::GetVxStrainRate2d{{{*/ 134 void TriaP1Input::GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){134 void TriaP1Input::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss){ 135 135 136 136 /*Intermediary*/ 137 137 int i; 138 138 const int numnodes=3; 139 Issm PDouble B[3][NDOF2*numnodes];140 Issm PDouble velocity[3][NDOF2];139 IssmDouble B[3][NDOF2*numnodes]; 140 IssmDouble velocity[3][NDOF2]; 141 141 142 142 /*Get B matrix: */ … … 155 155 /*}}}*/ 156 156 /*FUNCTION TriaP1Input::GetVyStrainRate2d{{{*/ 157 void TriaP1Input::GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){157 void TriaP1Input::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss){ 158 158 159 159 /*Intermediary*/ 160 160 int i; 161 161 const int numnodes=3; 162 Issm PDouble B[3][NDOF2*numnodes];163 Issm PDouble velocity[3][NDOF2];162 IssmDouble B[3][NDOF2*numnodes]; 163 IssmDouble velocity[3][NDOF2]; 164 164 165 165 /*Get B matrix: */ … … 183 183 /*}}}*/ 184 184 /*FUNCTION TriaP1Input::GetInputAverage{{{*/ 185 void TriaP1Input::GetInputAverage(Issm PDouble* pvalue){185 void TriaP1Input::GetInputAverage(IssmDouble* pvalue){ 186 186 *pvalue=1./3.*(values[0]+values[1]+values[2]); 187 187 } … … 190 190 /*Intermediary*/ 191 191 /*FUNCTION TriaP1Input::SquareMin{{{*/ 192 void TriaP1Input::SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters){193 194 int i; 195 const int numnodes=3; 196 Issm PDouble valuescopy[numnodes];197 Issm PDouble squaremin;192 void TriaP1Input::SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters){ 193 194 int i; 195 const int numnodes=3; 196 IssmDouble valuescopy[numnodes]; 197 IssmDouble squaremin; 198 198 199 199 /*First, copy values, to process units if requested: */ … … 213 213 /*}}}*/ 214 214 /*FUNCTION TriaP1Input::ContrainMin{{{*/ 215 void TriaP1Input::ConstrainMin(Issm PDouble minimum){215 void TriaP1Input::ConstrainMin(IssmDouble minimum){ 216 216 217 217 int i; … … 222 222 /*}}}*/ 223 223 /*FUNCTION TriaP1Input::InfinityNorm{{{*/ 224 Issm PDouble TriaP1Input::InfinityNorm(void){224 IssmDouble TriaP1Input::InfinityNorm(void){ 225 225 226 226 /*Output*/ 227 Issm PDouble norm=0;227 IssmDouble norm=0; 228 228 const int numnodes=3; 229 229 … … 233 233 /*}}}*/ 234 234 /*FUNCTION TriaP1Input::Max{{{*/ 235 Issm PDouble TriaP1Input::Max(void){236 237 const int numnodes=3; 238 Issm PDouble max=values[0];235 IssmDouble TriaP1Input::Max(void){ 236 237 const int numnodes=3; 238 IssmDouble max=values[0]; 239 239 240 240 for(int i=1;i<numnodes;i++){ … … 245 245 /*}}}*/ 246 246 /*FUNCTION TriaP1Input::MaxAbs{{{*/ 247 Issm PDouble TriaP1Input::MaxAbs(void){248 249 const int numnodes=3; 250 Issm PDouble max=fabs(values[0]);247 IssmDouble TriaP1Input::MaxAbs(void){ 248 249 const int numnodes=3; 250 IssmDouble max=fabs(values[0]); 251 251 252 252 for(int i=1;i<numnodes;i++){ … … 257 257 /*}}}*/ 258 258 /*FUNCTION TriaP1Input::Min{{{*/ 259 Issm PDouble TriaP1Input::Min(void){260 261 const int numnodes=3; 262 Issm PDouble min=values[0];259 IssmDouble TriaP1Input::Min(void){ 260 261 const int numnodes=3; 262 IssmDouble min=values[0]; 263 263 264 264 for(int i=1;i<numnodes;i++){ … … 269 269 /*}}}*/ 270 270 /*FUNCTION TriaP1Input::MinAbs{{{*/ 271 Issm PDouble TriaP1Input::MinAbs(void){272 273 const int numnodes=3; 274 Issm PDouble min=fabs(values[0]);271 IssmDouble TriaP1Input::MinAbs(void){ 272 273 const int numnodes=3; 274 IssmDouble min=fabs(values[0]); 275 275 276 276 for(int i=1;i<numnodes;i++){ … … 281 281 /*}}}*/ 282 282 /*FUNCTION TriaP1Input::Scale{{{*/ 283 void TriaP1Input::Scale(Issm PDouble scale_factor){283 void TriaP1Input::Scale(IssmDouble scale_factor){ 284 284 285 285 int i; … … 290 290 /*}}}*/ 291 291 /*FUNCTION TriaP1Input::ArtificialNoise{{{*/ 292 void TriaP1Input::ArtificialNoise(Issm PDouble min,IssmPDouble max){293 294 int i; 295 const int numnodes=3; 296 Issm PDouble noise;292 void TriaP1Input::ArtificialNoise(IssmDouble min,IssmDouble max){ 293 294 int i; 295 const int numnodes=3; 296 IssmDouble noise; 297 297 298 298 /*Compute random number between bounds: 299 299 * rand() outputs an integer in [0 RAND_MAX] 300 * (Issm PDouble)rand()/RAND_MAX is in [0 1]300 * (IssmDouble)rand()/RAND_MAX is in [0 1] 301 301 */ 302 noise=min+(max-min)*(Issm PDouble)rand()/RAND_MAX;302 noise=min+(max-min)*(IssmDouble)rand()/RAND_MAX; 303 303 304 304 for(i=0;i<numnodes;i++)values[i]=values[i]+noise; … … 306 306 /*}}}*/ 307 307 /*FUNCTION TriaP1Input::AXPY{{{*/ 308 void TriaP1Input::AXPY(Input* xinput,Issm PDouble scalar){308 void TriaP1Input::AXPY(Input* xinput,IssmDouble scalar){ 309 309 310 310 int i; … … 329 329 /*}}}*/ 330 330 /*FUNCTION TriaP1Input::Constrain{{{*/ 331 void TriaP1Input::Constrain(Issm PDouble cm_min, IssmPDouble cm_max){331 void TriaP1Input::Constrain(IssmDouble cm_min, IssmDouble cm_max){ 332 332 333 333 int i; … … 347 347 } /*}}}*/ 348 348 /*FUNCTION TriaP1Input::GetValuesPtr{{{*/ 349 void TriaP1Input::GetValuesPtr(Issm PDouble** pvalues,int* pnum_values){349 void TriaP1Input::GetValuesPtr(IssmDouble** pvalues,int* pnum_values){ 350 350 351 351 *pvalues=this->values; … … 365 365 int B_numvalues; 366 366 const int numnodes = 3; 367 Issm PDouble minvalues[numnodes];367 IssmDouble minvalues[numnodes]; 368 368 369 369 /*Check that inputB is of the same type*/ … … 396 396 int B_numvalues; 397 397 const int numnodes = 3; 398 Issm PDouble maxvalues[numnodes];398 IssmDouble maxvalues[numnodes]; 399 399 400 400 /*Check that inputB is of the same type*/ -
issm/trunk-jpl/src/c/objects/Inputs/TriaP1Input.h
r12494 r12530 19 19 /*just hold 3 values for 3 vertices: */ 20 20 int enum_type; 21 Issm PDouble values[3];21 IssmDouble values[3]; 22 22 23 23 /*TriaP1Input constructors, destructors: {{{*/ 24 24 TriaP1Input(); 25 TriaP1Input(int enum_type,Issm PDouble* values);25 TriaP1Input(int enum_type,IssmDouble* values); 26 26 ~TriaP1Input(); 27 27 /*}}}*/ … … 40 40 Input* PointwiseMin(Input* inputB); 41 41 Input* PointwiseMax(Input* inputB); 42 ElementResult* SpawnResult(int step, Issm PDouble time);43 void AddTimeValues(Issm PDouble* values,int step,IssmPDouble time){_error2_("not supported yet");};42 ElementResult* SpawnResult(int step, IssmDouble time); 43 void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error2_("not supported yet");}; 44 44 void Configure(Parameters* parameters); 45 45 /*}}}*/ … … 47 47 void GetInputValue(bool* pvalue){_error2_("not implemented yet");} 48 48 void GetInputValue(int* pvalue){_error2_("not implemented yet");} 49 void GetInputValue(Issm PDouble* pvalue){_error2_("not implemented yet");}50 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss);51 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss,IssmPDouble time){_error2_("not implemented yet");};52 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");};53 void GetInputValue(Issm PDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");};54 void GetInputValue(Issm PDouble* pvalue,GaussPenta* gauss,int index){_error2_("not implemented yet");};55 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss);56 void GetInputDerivativeValue(Issm PDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};57 void GetInputAverage(Issm PDouble* pvalue);58 void GetVxStrainRate2d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss);59 void GetVyStrainRate2d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss);60 void GetVxStrainRate3d(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};61 void GetVyStrainRate3d(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};62 void GetVzStrainRate3d(Issm PDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};63 void GetVxStrainRate3dPattyn(Issm PDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};64 void GetVyStrainRate3dPattyn(Issm PDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");};49 void GetInputValue(IssmDouble* pvalue){_error2_("not implemented yet");} 50 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss); 51 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss,IssmDouble time){_error2_("not implemented yet");}; 52 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss){_error2_("not implemented yet");}; 53 void GetInputValue(IssmDouble* pvalue,GaussTria* gauss ,int index){_error2_("not implemented yet");}; 54 void GetInputValue(IssmDouble* pvalue,GaussPenta* gauss,int index){_error2_("not implemented yet");}; 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussTria* gauss); 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 57 void GetInputAverage(IssmDouble* pvalue); 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussTria* gauss); 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussTria* gauss); 60 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 61 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 62 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 63 void GetVxStrainRate3dPattyn(IssmDouble* epsilonvx,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 64 void GetVyStrainRate3dPattyn(IssmDouble* epsilonvy,IssmPDouble* xyz_list, GaussPenta* gauss){_error2_("not implemented yet");}; 65 65 void ChangeEnum(int newenumtype); 66 66 67 void SquareMin(Issm PDouble* psquaremin, bool process_units,Parameters* parameters);68 void ConstrainMin(Issm PDouble minimum);69 void Scale(Issm PDouble scale_factor);70 void ArtificialNoise(Issm PDouble min,IssmPDouble max);71 void AXPY(Input* xinput,Issm PDouble scalar);72 void Constrain(Issm PDouble cm_min, IssmPDouble cm_max);73 Issm PDouble InfinityNorm(void);74 Issm PDouble Max(void);75 Issm PDouble MaxAbs(void);76 Issm PDouble Min(void);77 Issm PDouble MinAbs(void);67 void SquareMin(IssmDouble* psquaremin, bool process_units,Parameters* parameters); 68 void ConstrainMin(IssmDouble minimum); 69 void Scale(IssmDouble scale_factor); 70 void ArtificialNoise(IssmDouble min,IssmDouble max); 71 void AXPY(Input* xinput,IssmDouble scalar); 72 void Constrain(IssmDouble cm_min, IssmDouble cm_max); 73 IssmDouble InfinityNorm(void); 74 IssmDouble Max(void); 75 IssmDouble MaxAbs(void); 76 IssmDouble Min(void); 77 IssmDouble MinAbs(void); 78 78 void Extrude(void){_error2_("not supported yet");}; 79 79 void VerticallyIntegrate(Input* thickness_input){_error2_("not supported yet");}; 80 80 void GetVectorFromInputs(Vector* vector,int* doflist); 81 void GetValuesPtr(Issm PDouble** pvalues,int* pnum_values);81 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values); 82 82 /*}}}*/ 83 83
Note:
See TracChangeset
for help on using the changeset viewer.