Changeset 4043
- Timestamp:
- 06/14/10 18:08:59 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 38 added
- 196 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk/src/c/DataSet/DataSet.cpp ¶
r4034 r4043 835 835 /*}}}*/ 836 836 /*FUNCTION DataSet::MeltingConstraints{{{1*/ 837 void DataSet::MeltingConstraints(int* pconverged, int* pnum_unstable_constraints ,int analysis_type,int sub_analysis_type){837 void DataSet::MeltingConstraints(int* pconverged, int* pnum_unstable_constraints){ 838 838 839 839 /* generic object pointer: */ … … 855 855 pengrid=(Pengrid*)(*object); 856 856 857 pengrid->PenaltyConstrain(&unstable ,analysis_type,sub_analysis_type);857 pengrid->PenaltyConstrain(&unstable); 858 858 859 859 num_unstable_constraints+=unstable; -
TabularUnified issm/trunk/src/c/DataSet/DataSet.h ¶
r4037 r4043 55 55 void DistributeDofs(int numberofnodes,int numdofspernode); 56 56 void CreatePartitioningVector(Vec* ppartition,int numobjects); 57 void DistributeNumDofs(int** pnumdofspernode,int numberofnodes,int analysis_type,int sub_analysis_type);58 57 void FlagClones(int numberofnodes); 59 58 int NumberOfDofs(int analysis_type); … … 77 76 int RiftIsPresent(); 78 77 int MeltingIsPresent(); 79 void MeltingConstraints(int* pconverged, int* pnum_unstable_constraints ,int analysis_type,int sub_analysis_type);78 void MeltingConstraints(int* pconverged, int* pnum_unstable_constraints); 80 79 DataSet* Copy(void); 81 80 void InputExtrude(int enum_type); -
TabularUnified issm/trunk/src/c/EnumDefinitions/EnumAsString.cpp ¶
r4039 r4043 172 172 case PressureEnum : return "Pressure"; 173 173 case PressureOldEnum : return "PressureOld"; 174 case QmuPressureEnum : return "QmuPressure"; 175 case StokesPressureEnum : return "StokesPressure"; 174 176 case ResetPenaltiesEnum : return "ResetPenalties"; 175 177 case RheologyBEnum : return "RheologyB"; … … 191 193 case VxObsEnum : return "VxObs"; 192 194 case VxOldEnum : return "VxOld"; 195 case QmuVxEnum : return "QmuVx"; 193 196 case VyAverageEnum : return "VyAverage"; 194 197 case VyEnum : return "Vy"; 195 198 case VyObsEnum : return "VyObs"; 196 199 case VyOldEnum : return "VyOld"; 200 case QmuVyEnum : return "QmuVy"; 197 201 case VzAverageEnum : return "VzAverage"; 198 202 case VzEnum : return "Vz"; 199 203 case VzObsEnum : return "VzObs"; 200 204 case VzOldEnum : return "VzOld"; 205 case QmuVzEnum : return "QmuVz"; 201 206 case WeightsEnum : return "Weights"; 202 207 case P0Enum : return "P0"; -
TabularUnified issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h ¶
r4039 r4043 201 201 PressureEnum, 202 202 PressureOldEnum, 203 QmuPressureEnum, 204 StokesPressureEnum, 203 205 ResetPenaltiesEnum, 204 206 RheologyBEnum, … … 220 222 VxObsEnum, 221 223 VxOldEnum, 224 QmuVxEnum, 222 225 VyAverageEnum, 223 226 VyEnum, 224 227 VyObsEnum, 225 228 VyOldEnum, 229 QmuVyEnum, 226 230 VzAverageEnum, 227 231 VzEnum, 228 232 VzObsEnum, 229 233 VzOldEnum, 234 QmuVzEnum, 230 235 WeightsEnum, 231 236 /*}}}*/ -
TabularUnified issm/trunk/src/c/EnumDefinitions/StringAsEnum.cpp ¶
r4039 r4043 170 170 else if (strcmp(name,"Pressure")==0) return PressureEnum; 171 171 else if (strcmp(name,"PressureOld")==0) return PressureOldEnum; 172 else if (strcmp(name,"QmuPressure")==0) return QmuPressureEnum; 173 else if (strcmp(name,"StokesPressure")==0) return StokesPressureEnum; 172 174 else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum; 173 175 else if (strcmp(name,"RheologyB")==0) return RheologyBEnum; … … 189 191 else if (strcmp(name,"VxObs")==0) return VxObsEnum; 190 192 else if (strcmp(name,"VxOld")==0) return VxOldEnum; 193 else if (strcmp(name,"QmuVx")==0) return QmuVxEnum; 191 194 else if (strcmp(name,"VyAverage")==0) return VyAverageEnum; 192 195 else if (strcmp(name,"Vy")==0) return VyEnum; 193 196 else if (strcmp(name,"VyObs")==0) return VyObsEnum; 194 197 else if (strcmp(name,"VyOld")==0) return VyOldEnum; 198 else if (strcmp(name,"QmuVy")==0) return QmuVyEnum; 195 199 else if (strcmp(name,"VzAverage")==0) return VzAverageEnum; 196 200 else if (strcmp(name,"Vz")==0) return VzEnum; 197 201 else if (strcmp(name,"VzObs")==0) return VzObsEnum; 198 202 else if (strcmp(name,"VzOld")==0) return VzOldEnum; 203 else if (strcmp(name,"QmuVz")==0) return QmuVzEnum; 199 204 else if (strcmp(name,"Weights")==0) return WeightsEnum; 200 205 else if (strcmp(name,"P0")==0) return P0Enum; -
TabularUnified issm/trunk/src/c/issm.h ¶
r3914 r4043 12 12 #include "./EnumDefinitions/EnumDefinitions.h" 13 13 #include "./toolkits/toolkits.h" 14 #include "./solutions/solutions.h" 15 #include "./solvers/solvers.h" 14 16 15 17 #endif //ifndef _ISSM_H_ -
TabularUnified issm/trunk/src/c/modules/ComputeBasalStressx/ComputeBasalStressx.cpp ¶
r3966 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void ComputeBasalStressx( Vec* psigma,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,Parameters* parameters, 13 int analysis_type,int sub_analysis_type){ 12 void ComputeBasalStressx( Vec* psigma,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,Parameters* parameters){ 14 13 15 14 /*Intermediary*/ … … 37 36 for (i=0;i<elements->Size();i++){ 38 37 element=(Element*)elements->GetObjectByOffset(i); 39 element->ComputeBasalStress(sigma ,analysis_type,sub_analysis_type);38 element->ComputeBasalStress(sigma); 40 39 } 41 40 -
TabularUnified issm/trunk/src/c/modules/ComputePressurex/ComputePressurex.cpp ¶
r3966 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void ComputePressurex( Vec* pp_g,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,Parameters* parameters, 13 int analysis_type,int sub_analysis_type){ 12 void ComputePressurex( Vec* pp_g,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,Parameters* parameters){ 14 13 15 14 /*intermediary*/ … … 36 35 for (i=0;i<elements->Size();i++){ 37 36 element=(Element*)elements->GetObjectByOffset(i); 38 element->ComputePressure(p_g ,analysis_type,sub_analysis_type);37 element->ComputePressure(p_g); 39 38 } 40 39 -
TabularUnified issm/trunk/src/c/modules/ComputeStrainRatex/ComputeStrainRatex.cpp ¶
r3966 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void ComputeStrainRatex( Vec* peps,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,Parameters* parameters, 13 int analysis_type,int sub_analysis_type){ 12 void ComputeStrainRatex( Vec* peps,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,Parameters* parameters){ 14 13 15 14 /*Intermediary*/ … … 36 35 for (i=0;i<elements->Size();i++){ 37 36 element=(Element*)elements->GetObjectByOffset(i); 38 element->ComputeStrainRate(eps ,analysis_type,sub_analysis_type);37 element->ComputeStrainRate(eps); 39 38 } 40 39 -
TabularUnified issm/trunk/src/c/modules/CostFunctionx/CostFunctionx.cpp ¶
r3967 r4043 11 11 #include "../SurfaceAreax/SurfaceAreax.h" 12 12 13 void CostFunctionx( double* pJ, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials,Parameters* parameters, 14 int analysis_type,int sub_analysis_type){ 13 void CostFunctionx( double* pJ, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials,Parameters* parameters){ 15 14 16 15 /*Intermediary*/ … … 30 29 31 30 /*Compute surface area: */ 32 SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters ,analysis_type,sub_analysis_type);31 SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters); 33 32 34 33 /*add surface area to elements :*/ … … 38 37 for (i=0;i<elements->Size();i++){ 39 38 element=(Element*)elements->GetObjectByOffset(i); 40 J+=element->CostFunction( analysis_type,sub_analysis_type);39 J+=element->CostFunction(); 41 40 } 42 41 -
TabularUnified issm/trunk/src/c/modules/Dux/Dux.cpp ¶
r4034 r4043 11 11 #include "../SurfaceAreax/SurfaceAreax.h" 12 12 13 void Dux( Vec* pdu_g, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, 14 DataSet* materials, Parameters* parameters,int analysis_type,int sub_analysis_type){ 13 void Dux( Vec* pdu_g, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters){ 15 14 16 15 /*Intermediary*/ … … 22 21 Element* element=NULL; 23 22 23 int analysis_type; 24 24 25 /*output: */ 25 26 Vec du_g=NULL; 27 28 /*retrive parameters: */ 29 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 26 30 27 31 /*First, get elements and loads configured: */ … … 31 35 32 36 /*Compute surface area: */ 33 SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters ,analysis_type,sub_analysis_type);37 SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters); 34 38 35 39 /*add surface area to elements :*/ … … 45 49 for (i=0;i<elements->Size();i++){ 46 50 element=(Element*)elements->GetObjectByOffset(i); 47 element->Du(du_g ,analysis_type,sub_analysis_type);51 element->Du(du_g); 48 52 } 49 53 -
TabularUnified issm/trunk/src/c/modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp ¶
r4034 r4043 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void GetSolutionFromInputsx( Vec* psolution, DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters , int analysis_type, int sub_analysis_type){11 void GetSolutionFromInputsx( Vec* psolution, DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters){ 12 12 13 13 /*intermediary: */ … … 16 16 Element* element=NULL; 17 17 18 int analysis_type; 19 18 20 /*output: */ 19 21 Vec solution=NULL; 22 23 /*retrive parameters: */ 24 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 20 25 21 26 /*First, get elements and loads configured: */ … … 34 39 for (i=0;i<elements->Size();i++){ 35 40 element=(Element*)elements->GetObjectByOffset(i); 36 element->GetSolutionFromInputs(solution ,analysis_type,sub_analysis_type);41 element->GetSolutionFromInputs(solution); 37 42 } 38 43 -
TabularUnified issm/trunk/src/c/modules/Gradjx/Gradjx.cpp ¶
r3967 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void Gradjx( Vec* pgrad_g, int numberofnodes, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters, 13 int analysis_type,int sub_analysis_type,int control_type){ 12 void Gradjx( Vec* pgrad_g, int numberofnodes, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,int control_type){ 14 13 15 14 /*Intermediary*/ … … 31 30 for (i=0;i<elements->Size();i++){ 32 31 element=(Element*)elements->GetObjectByOffset(i); 33 element->Gradj(grad_g, analysis_type,sub_analysis_type,control_type);32 element->Gradj(grad_g,control_type); 34 33 } 35 34 -
TabularUnified issm/trunk/src/c/modules/InputToResultx/InputToResultx.cpp ¶
r4037 r4043 4 4 5 5 #include "./InputToResultx.h" 6 7 6 #include "../../shared/shared.h" 8 7 #include "../../include/include.h" … … 10 9 #include "../../EnumDefinitions/EnumDefinitions.h" 11 10 12 void InputToResultx(DataSet* elements,DataSet* nodes,DataSet* vertices,DataSet* loads,DataSet* materials,Parameters* parameters,int enum_type,int step =1, double time=0){11 void InputToResultx(DataSet* elements,DataSet* nodes,DataSet* vertices,DataSet* loads,DataSet* materials,Parameters* parameters,int enum_type,int step, double time){ 13 12 14 13 /*intermediary:*/ -
TabularUnified issm/trunk/src/c/modules/MassFluxx/MassFluxx.cpp ¶
r3913 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void MassFluxx(double* pmass_flux, DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials,Parameters* parameters, double* segments,int num_segments ,double* ug){12 void MassFluxx(double* pmass_flux, DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials,Parameters* parameters, double* segments,int num_segments){ 13 13 14 14 int i,j; … … 38 38 if (element->Id()==element_id){ 39 39 /*We found the element which owns this segment, use it to compute the mass flux: */ 40 mass_flux+=element->MassFlux(segments+5*i+0 ,ug);40 mass_flux+=element->MassFlux(segments+5*i+0); 41 41 break; 42 42 } -
TabularUnified issm/trunk/src/c/modules/MassFluxx/MassFluxx.h ¶
r3913 r4043 10 10 11 11 /* local prototypes: */ 12 void MassFluxx(double* pmass_flux, DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials, Parameters* parameters,double* segments,int num_segments ,double* ug);12 void MassFluxx(double* pmass_flux, DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials, Parameters* parameters,double* segments,int num_segments); 13 13 14 14 -
TabularUnified issm/trunk/src/c/modules/MaxVelx/MaxVelx.cpp ¶
r4042 r4043 17 17 double node_maxvel; 18 18 bool process_units=true; 19 double element_maxvel; 19 20 20 21 /*First, configure elements:*/ -
TabularUnified issm/trunk/src/c/modules/MinVelx/MinVelx.cpp ¶
r4042 r4043 17 17 double node_minvel; 18 18 bool process_units=true; 19 double element_minvel; 19 20 20 21 /*First, configure elements:*/ -
TabularUnified issm/trunk/src/c/modules/Misfitx/Misfitx.cpp ¶
r3967 r4043 11 11 #include "../SurfaceAreax/SurfaceAreax.h" 12 12 13 void Misfitx( double* pJ, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials,Parameters* parameters, 14 int analysis_type,int sub_analysis_type){ 13 void Misfitx( double* pJ, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials,Parameters* parameters){ 15 14 16 15 /*Intermediary*/ … … 30 29 31 30 /*Compute surface area: */ 32 SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters ,analysis_type,sub_analysis_type);31 SurfaceAreax(&S,elements,nodes,vertices, loads,materials,parameters); 33 32 34 33 /*add surface area to elements :*/ … … 38 37 for (i=0;i<elements->Size();i++){ 39 38 element=(Element*)elements->GetObjectByOffset(i); 40 J+=element->Misfit( analysis_type,sub_analysis_type);39 J+=element->Misfit(); 41 40 } 42 41 -
TabularUnified issm/trunk/src/c/modules/Misfitx/Misfitx.h ¶
r3913 r4043 10 10 11 11 /* local prototypes: */ 12 void Misfitx( double* pJ, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters, 13 int analysis_type,int sub_analysis_type); 12 void Misfitx( double* pJ, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters); 14 13 15 14 #endif /* _MISFITX_H */ -
TabularUnified issm/trunk/src/c/modules/PenaltyConstraintsx/PenaltyConstraintsx.cpp ¶
r3913 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void PenaltyConstraintsx(int* pconverged, int* pnum_unstable_constraints, DataSet* elements,DataSet* nodes, DataSet* vertices, 13 DataSet* loads,DataSet* materials, Parameters* parameters,int analysis_type,int sub_analysis_type){ 12 void PenaltyConstraintsx(int* pconverged, int* pnum_unstable_constraints, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads,DataSet* materials, Parameters* parameters){ 14 13 15 14 int i; … … 34 33 * management routine, otherwise, skip : */ 35 34 if (RiftIsPresent(loads)){ 36 RiftConstraints(&converged,&num_unstable_constraints,loads,min_mechanical_constraints ,analysis_type,sub_analysis_type);35 RiftConstraints(&converged,&num_unstable_constraints,loads,min_mechanical_constraints); 37 36 } 38 37 else if(loads->MeltingIsPresent()){ 39 loads->MeltingConstraints(&converged,&num_unstable_constraints ,analysis_type,sub_analysis_type);38 loads->MeltingConstraints(&converged,&num_unstable_constraints); 40 39 } 41 40 else{ -
TabularUnified issm/trunk/src/c/modules/PenaltyConstraintsx/PenaltyConstraintsx.h ¶
r3913 r4043 10 10 11 11 /* local prototypes: */ 12 void PenaltyConstraintsx(int* pconverged, int* pnum_unstable_constraints, DataSet* elements,DataSet* nodes, DataSet* vertices, 13 DataSet* loads,DataSet* materials, Parameters* parameters,int analysis_type,int sub_analysis_type); 12 void PenaltyConstraintsx(int* pconverged, int* pnum_unstable_constraints, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads,DataSet* materials, Parameters* parameters); 14 13 15 14 #endif /* _PENALTYCONSTRAINTSX_H */ -
TabularUnified issm/trunk/src/c/modules/PenaltyConstraintsx/RiftConstraints.cpp ¶
r3913 r4043 10 10 #define _ZIGZAGCOUNTER_ 11 11 12 int RiftConstraints(int* pconverged, int* pnum_unstable_constraints,DataSet* loads,int min_mechanical_constraints ,int analysis_type,int sub_analysis_type){12 int RiftConstraints(int* pconverged, int* pnum_unstable_constraints,DataSet* loads,int min_mechanical_constraints){ 13 13 14 14 int num_unstable_constraints=0; … … 17 17 extern int my_rank; 18 18 19 Constrain(&num_unstable_constraints,loads ,analysis_type);19 Constrain(&num_unstable_constraints,loads); 20 20 if(num_unstable_constraints==0)converged=1; 21 21 … … 27 27 else if(num_unstable_constraints<=min_mechanical_constraints){ 28 28 _printf_(" freezing constraints\n"); 29 FreezeConstraints(loads ,analysis_type);29 FreezeConstraints(loads); 30 30 } 31 31 … … 35 35 } 36 36 37 int IsMaterialStable(DataSet* loads ,int analysis_type){37 int IsMaterialStable(DataSet* loads){ 38 38 39 39 int i; … … 50 50 riftfront=(Riftfront*)loads->GetObjectByOffset(i); 51 51 52 if (riftfront->IsMaterialStable( analysis_type)){52 if (riftfront->IsMaterialStable()){ 53 53 found=1; 54 54 /*do not break! all penalties should get informed the non-linearity converged!*/ … … 150 150 } 151 151 152 int PreConstrain(int* pnum_unstable_constraints,DataSet* loads ,int analysis_type){152 int PreConstrain(int* pnum_unstable_constraints,DataSet* loads){ 153 153 154 154 int i; … … 168 168 riftfront=(Riftfront*)loads->GetObjectByOffset(i); 169 169 170 riftfront->PreConstrain(&unstable ,analysis_type);170 riftfront->PreConstrain(&unstable); 171 171 172 172 num_unstable_constraints+=unstable; … … 185 185 } 186 186 187 int Constrain(int* pnum_unstable_constraints,DataSet* loads ,int analysis_type){187 int Constrain(int* pnum_unstable_constraints,DataSet* loads){ 188 188 189 189 int i; … … 203 203 riftfront=(Riftfront*)loads->GetObjectByOffset(i); 204 204 205 riftfront->Constrain(&unstable ,analysis_type);205 riftfront->Constrain(&unstable); 206 206 207 207 num_unstable_constraints+=unstable; … … 220 220 } 221 221 222 void FreezeConstraints(DataSet* loads ,int analysis_type){222 void FreezeConstraints(DataSet* loads){ 223 223 224 224 int i; … … 234 234 riftfront=(Riftfront*)loads->GetObjectByOffset(i); 235 235 236 riftfront->FreezeConstraints( analysis_type);236 riftfront->FreezeConstraints(); 237 237 238 238 } … … 273 273 } 274 274 275 int MaxPenetrationInInputs(DataSet* loads ,int analysis_type){275 int MaxPenetrationInInputs(DataSet* loads){ 276 276 277 277 int i; … … 295 295 riftfront=(Riftfront*)loads->GetObjectByOffset(i); 296 296 297 riftfront->MaxPenetration(&penetration ,analysis_type);297 riftfront->MaxPenetration(&penetration); 298 298 299 299 if (penetration>max_penetration)max_penetration=penetration; … … 311 311 } 312 312 313 int PotentialUnstableConstraints(DataSet* loads ,int analysis_type){313 int PotentialUnstableConstraints(DataSet* loads){ 314 314 315 315 int i; … … 330 330 riftfront=(Riftfront*)loads->GetObjectByOffset(i); 331 331 332 riftfront->PotentialUnstableConstraint(&unstable ,analysis_type);332 riftfront->PotentialUnstableConstraint(&unstable); 333 333 334 334 num_unstable_constraints+=unstable; -
TabularUnified issm/trunk/src/c/modules/PenaltyConstraintsx/RiftConstraints.h ¶
r3913 r4043 10 10 #include "../../DataSet/DataSet.h" 11 11 12 int RiftConstraints(int* pconverged, int* pnum_unstable_constraints,DataSet* loads,int min_mechanical_constraints ,int analysis_type,int sub_analysis_type);12 int RiftConstraints(int* pconverged, int* pnum_unstable_constraints,DataSet* loads,int min_mechanical_constraints); 13 13 14 14 int RiftIsPresent(DataSet* loads); … … 18 18 int SetPreStable(DataSet* loads); 19 19 20 int PreConstrain(int* pnum_unstable_constraints,DataSet* loads ,int analysis_type_enum);20 int PreConstrain(int* pnum_unstable_constraints,DataSet* loads); 21 21 22 int Constrain(int* pnum_unstable_constraints,DataSet* loads ,int analysis_type_enum);22 int Constrain(int* pnum_unstable_constraints,DataSet* loads); 23 23 24 void FreezeConstraints(DataSet* loads ,int analysis_type);24 void FreezeConstraints(DataSet* loads); 25 25 26 int MaxPenetrationInInputs(DataSet* loads ,int analysis_type_enum);26 int MaxPenetrationInInputs(DataSet* loads); 27 27 28 int PotentialUnstableConstraints(DataSet* loads ,int analysis_type_enum);28 int PotentialUnstableConstraints(DataSet* loads); 29 29 30 int IsMaterialStable(DataSet* loads ,int analysis_type_enum);30 int IsMaterialStable(DataSet* loads); 31 31 32 32 int IsFrozen(DataSet* loads); -
TabularUnified issm/trunk/src/c/modules/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp ¶
r3965 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void PenaltySystemMatricesx(Mat Kgg, Vec pg,double* pkmax,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials, Parameters* parameters, 13 int kflag,int pflag,int analysis_type,int sub_analysis_type){ 12 void PenaltySystemMatricesx(Mat Kgg, Vec pg,double* pkmax,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials, Parameters* parameters, int kflag,int pflag){ 14 13 15 14 int i; … … 32 31 for (i=0;i<loads->Size();i++){ 33 32 load=(Load*)loads->GetObjectByOffset(i); 34 load->PenaltyCreateKMatrix(Kgg,kmax ,analysis_type,sub_analysis_type);33 load->PenaltyCreateKMatrix(Kgg,kmax); 35 34 } 36 35 … … 47 46 for (i=0;i<loads->Size();i++){ 48 47 load=(Load*)loads->GetObjectByOffset(i); 49 load->PenaltyCreatePVector(pg,kmax ,analysis_type,sub_analysis_type);48 load->PenaltyCreatePVector(pg,kmax); 50 49 } 51 50 -
TabularUnified issm/trunk/src/c/modules/Qmux/DakotaResponses.cpp ¶
r4042 r4043 13 13 #include "../../include/include.h" 14 14 #include "../../EnumDefinitions/EnumDefinitions.h" 15 #include "../MassFluxx/MassFluxx.h"16 #include "../Misfitx/Misfitx.h"17 15 #include "../modules.h" 18 16 … … 20 18 21 19 int i; 20 int dummy; 22 21 extern int my_rank; 23 22 … … 70 69 } 71 70 else if(strcmp(response_descriptor,"mass_flux")==0){ 72 MassFlux(&femmodel_response,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 71 72 double* segments=NULL; 73 int num_segments; 74 75 /*retrieve qmu_mass_flux_segments: */ 76 femmodel->parameters->FindParam(&segments,&num_segments,&dummy,QmuMassFluxSegmentsEnum); 77 78 /*call mass flux module: */ 79 MassFluxx(&femmodel_response,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,segments,num_segments); 80 81 /*Free ressources:*/ 82 xfree((void**)&segments); 83 73 84 } 74 85 else{ … … 81 92 82 93 } 94 95 96 97 -
TabularUnified issm/trunk/src/c/modules/Qmux/Qmux.h ¶
r4042 r4043 10 10 11 11 /* local prototypes: */ 12 int SpawnCore(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, void* femmodel,int analysis_type,int sub_analysis_type,intcounter);12 int SpawnCore(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, void* femmodel,int counter); 13 13 #ifdef _SERIAL_ 14 void Qmux(mxArray* femmodel, int analysis_type,int sub_analysis_type,char* dakota_input_file,char* dakota_output_file,char* dakota_error_file);15 void SpawnCoreSerial(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, mxArray* femmodel,int analysis_type,int sub_analysis_type,intcounter);14 void Qmux(mxArray* femmodel,char* dakota_input_file,char* dakota_output_file,char* dakota_error_file); 15 void SpawnCoreSerial(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, mxArray* femmodel,int counter); 16 16 #else 17 void Qmux(FemModel* femmodel ,int analysis_type,int sub_analysis_type);18 void SpawnCoreParallel(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, FemModel* femmodel,int analysis_type,int sub_analysis_type,intcounter);19 void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,FemModel* femmodel ,int analysis_type,int sub_analysis_type);17 void Qmux(FemModel* femmodel); 18 void SpawnCoreParallel(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, FemModel* femmodel,int counter); 19 void DakotaResponses(double* responses,char** responses_descriptors,int numresponses,FemModel* femmodel); 20 20 #endif 21 21 -
TabularUnified issm/trunk/src/c/modules/Qmux/SpawnCore.cpp ¶
r4042 r4043 26 26 MPI_Bcast(&counter,1,MPI_INT,0,MPI_COMM_WORLD); if(counter==-1)return 0; 27 27 28 SpawnCoreParallel(responses, numresponses, variables, variables_descriptors,numvariables, (FemModel*)femmodel );28 SpawnCoreParallel(responses, numresponses, variables, variables_descriptors,numvariables, (FemModel*)femmodel,counter); 29 29 #endif 30 30 -
TabularUnified issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp ¶
r4042 r4043 33 33 #include "../../include/include.h" 34 34 #include "../../solutions/solutions.h" 35 #include "../modules.h" 35 36 36 37 void SpawnCoreParallel(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, FemModel* femmodel,int counter){ … … 59 60 60 61 /*Recover partitioning for dakota: */ 61 femmodel-> FindParam(&qmu_npart,QmuNPartEnum);62 femmodel-> FindParam(&qmu_part,&dummy,QmuPartEnum);62 femmodel->parameters->FindParam(&qmu_npart,QmuNPartEnum); 63 femmodel->parameters->FindParam(&qmu_part,&dummy,QmuPartEnum); 63 64 64 65 /*broadcast variables: only cpu 0 has correct values*/ … … 88 89 89 90 /*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */ 90 Update FromDakota(variables,variables_descriptors,numvariables,femmodel,qmu_part,qmu_npart);91 UpdateInputsFromDakotax(variables,variables_descriptors,numvariables,femmodel,qmu_part,qmu_npart); 91 92 92 93 /*Run the analysis core solution sequence: */ … … 120 121 /*compute responses on cpu 0: dummy for now! */ 121 122 if(verbose)_printf_("compute dakota responses:\n"); 122 DakotaResponses(responses,responses_descriptors,numresponses,femmodel ,results,processed_results);123 DakotaResponses(responses,responses_descriptors,numresponses,femmodel); 123 124 124 125 /*Free ressources:*/ -
TabularUnified issm/trunk/src/c/modules/Qmux/SpawnCoreSerial.cpp ¶
r3913 r4043 19 19 #include "../../include/include.h" 20 20 21 void SpawnCoreSerial(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, mxArray* model ,int analysis_type,int sub_analysis_type,int counter){21 void SpawnCoreSerial(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, mxArray* modelint counter){ 22 22 23 23 int i; … … 27 27 double* variables_copy=NULL; 28 28 mxArray* mxvariabledescriptors=NULL; 29 mxArray* mxanalysis_type=NULL;30 mxArray* mxsub_analysis_type=NULL;31 29 mxArray* mxcounter=NULL; 32 30 mwSize dims[2]={0}; … … 51 49 } 52 50 53 mxanalysis_type=mxCreateDoubleScalar((double)analysis_type);54 mxsub_analysis_type=mxCreateDoubleScalar((double)sub_analysis_type);55 51 mxcounter=mxCreateDoubleScalar((double)counter); 56 52 … … 59 55 array[2]=mxvariables; 60 56 array[3]=mxvariabledescriptors; 61 array[4]=mxanalysis_type; 62 array[5]=mxsub_analysis_type; 63 array[6]=mxcounter; 57 array[4]=mxcounter; 64 58 65 mexCallMATLAB(1,&mxresponses, 7,array,"SpawnCore");59 mexCallMATLAB(1,&mxresponses,5,array,"SpawnCore"); 66 60 67 61 /*copy responses back to dakota: */ … … 72 66 mxDestroyArray(mxvariabledescriptors); 73 67 mxDestroyArray(mxresponses); 74 mxDestroyArray(mxanalysis_type);75 mxDestroyArray(mxsub_analysis_type);76 68 mxDestroyArray(mxcounter); 77 69 -
TabularUnified issm/trunk/src/c/modules/SurfaceAreax/SurfaceAreax.cpp ¶
r3968 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void SurfaceAreax( double* pS, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials,Parameters* parameters, 13 int analysis_type,int sub_analysis_type){ 12 void SurfaceAreax( double* pS, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials,Parameters* parameters){ 14 13 15 14 /*Intermediary*/ … … 28 27 for (i=0;i<elements->Size();i++){ 29 28 element=(Element*)elements->GetObjectByOffset(i); 30 S+=element->SurfaceArea( analysis_type,sub_analysis_type);29 S+=element->SurfaceArea(); 31 30 } 32 31 -
TabularUnified issm/trunk/src/c/modules/SurfaceAreax/SurfaceAreax.h ¶
r3913 r4043 10 10 11 11 /* local prototypes: */ 12 void SurfaceAreax( double* pS, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters, 13 int analysis_type,int sub_analysis_type); 12 void SurfaceAreax( double* pS, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters); 14 13 15 14 #endif /* _SURFACEAREAX_H */ -
TabularUnified issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp ¶
r4034 r4043 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void SystemMatricesx(Mat* pKgg, Vec* ppg,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials, Parameters* parameters, 13 int kflag,int pflag,int analysis_type,int sub_analysis_type){ 12 void SystemMatricesx(Mat* pKgg, Vec* ppg,DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads,DataSet* materials, Parameters* parameters, int kflag,int pflag){ 14 13 15 14 /*intermediary: */ … … 25 24 Vec pg=NULL; 26 25 26 int analysis_type; 27 27 28 /*First, get elements and loads configured: */ 28 29 elements-> Configure(elements,loads, nodes,vertices, materials,parameters); … … 30 31 loads-> Configure(elements, loads, nodes,vertices, materials,parameters); 31 32 parameters->Configure(elements,loads, nodes,vertices, materials,parameters); 33 34 /*retrive parameters: */ 35 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 32 36 33 37 /*Recover parameters: */ … … 47 51 for (i=0;i<elements->Size();i++){ 48 52 element=(Element*)elements->GetObjectByOffset(i); 49 element->CreateKMatrix(Kgg ,analysis_type,sub_analysis_type);53 element->CreateKMatrix(Kgg); 50 54 } 51 55 … … 53 57 for (i=0;i<loads->Size();i++){ 54 58 load=(Load*)loads->GetObjectByOffset(i); 55 load->CreateKMatrix(Kgg ,analysis_type,sub_analysis_type);59 load->CreateKMatrix(Kgg); 56 60 } 57 61 … … 71 75 for (i=0;i<elements->Size();i++){ 72 76 element=(Element*)elements->GetObjectByOffset(i); 73 element->CreatePVector(pg ,analysis_type,sub_analysis_type);77 element->CreatePVector(pg); 74 78 } 75 79 … … 77 81 for (i=0;i<loads->Size();i++){ 78 82 load=(Load*)loads->GetObjectByOffset(i); 79 load->CreatePVector(pg ,analysis_type,sub_analysis_type);83 load->CreatePVector(pg); 80 84 } 81 85 -
TabularUnified issm/trunk/src/c/modules/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp ¶
r4042 r4043 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution , int analysis_type, int sub_analysis_type){11 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution){ 12 12 13 13 double* serial_solution=NULL; … … 17 17 18 18 /*Call overloaded form of UpdateInputsFromSolutionx: */ 19 UpdateInputsFromSolutionx( elements, nodes, vertices, loads, materials, parameters,serial_solution , analysis_type, sub_analysis_type);19 UpdateInputsFromSolutionx( elements, nodes, vertices, loads, materials, parameters,serial_solution); 20 20 21 21 /*Free ressources:*/ … … 25 25 26 26 27 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution , int analysis_type, int sub_analysis_type){27 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution){ 28 28 29 29 /*Intermediary*/ … … 40 40 for (i=0;i<elements->Size();i++){ 41 41 element=(Element*)elements->GetObjectByOffset(i); 42 element->UpdateInputsFromSolution(solution ,analysis_type,sub_analysis_type);42 element->UpdateInputsFromSolution(solution); 43 43 } 44 44 -
TabularUnified issm/trunk/src/c/modules/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h ¶
r4037 r4043 10 10 11 11 /* local prototypes: */ 12 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution , int analysis_type, int sub_analysis_type);13 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution , int analysis_type, int sub_analysis_type);12 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution); 13 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution); 14 14 15 15 //with timestep 16 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution, int analysis_type, int sub_analysis_type,int timestep);17 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution, int analysis_type, int sub_analysis_type,inttimestep);16 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution,int timestep); 17 void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* solution, int timestep); 18 18 19 19 #endif /* _UPDATEINPUTSFROMSOLUTIONXX_H */ -
TabularUnified issm/trunk/src/c/modules/modules.h ¶
r4042 r4043 30 30 #include "./UpdateInputsFromConstantx/UpdateInputsFromConstantx.h" 31 31 #include "./UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h" 32 #include "./UpdateInputsFromDakotax/UpdateInputsFromDakotax.h" 32 33 #include "./UpdateInputsFromVectorx/UpdateInputsFromVectorx.h" 33 34 #include "./UpdateGeometryx/UpdateGeometryx.h" … … 68 69 #include "./MinVelx/MinVelx.h" 69 70 #include "./MaxVelx/MaxVelx.h" 71 #include "./MinVxx/MinVxx.h" 72 #include "./MaxVxx/MaxVxx.h" 73 #include "./MaxAbsVxx/MaxAbsVxx.h" 74 #include "./MinVyx/MinVyx.h" 75 #include "./MaxVyx/MaxVyx.h" 76 #include "./MaxAbsVyx/MaxAbsVyx.h" 77 #include "./MinVzx/MinVzx.h" 78 #include "./MaxVzx/MaxVzx.h" 79 #include "./MaxAbsVzx/MaxAbsVzx.h" 80 #include "./ReinitializeInputx/ReinitializeInputx.h" 81 70 82 #endif -
TabularUnified issm/trunk/src/c/objects/Constraints/Rgb.h ¶
r4003 r4043 41 41 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 42 42 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 43 44 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 43 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 45 44 46 45 -
TabularUnified issm/trunk/src/c/objects/Constraints/Spc.cpp ¶
r4003 r4043 122 122 } 123 123 /*}}}1*/ 124 /*FUNCTION Spc::DistributeNumDofs {{{1*/125 void Spc::DistributeNumDofs(int* numdofspernode,int analysis_type){return;}126 /*}}}1*/127 124 /*FUNCTION Spc::Echo {{{1*/ 128 125 void Spc::Echo(void){ -
TabularUnified issm/trunk/src/c/objects/Constraints/Spc.h ¶
r4003 r4043 35 35 int Id(); 36 36 int MyRank(); 37 void DistributeNumDofs(int* numdofspernode,int analysis_type);38 37 int GetNodeId(); 39 38 int GetDof(); … … 46 45 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 47 46 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 48 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}47 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 49 48 bool InAnalysis(int analysis_type); 50 49 -
TabularUnified issm/trunk/src/c/objects/DofVec.h ¶
r3751 r4043 53 53 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 54 54 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 55 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}55 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 56 56 Object* copy(); 57 57 -
TabularUnified issm/trunk/src/c/objects/Elements/Beam.cpp ¶
r4042 r4043 131 131 /*}}}*/ 132 132 /*FUNCTION Beam::UpdateInputsFromSolution {{{1*/ 133 void Beam::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){134 ISSMERROR(" not supported yet!"); 135 } 136 /*}}}*/ 137 /*FUNCTION Beam::GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type);{{{1*/138 void Beam::GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type){133 void Beam::UpdateInputsFromSolution(double* solution){ 134 ISSMERROR(" not supported yet!"); 135 } 136 /*}}}*/ 137 /*FUNCTION Beam::GetSolutionFromInputs(Vec solution);{{{1*/ 138 void Beam::GetSolutionFromInputs(Vec solution){ 139 139 ISSMERROR(" not supported yet!"); 140 140 } … … 153 153 /*Object functions*/ 154 154 /*FUNCTION Beam::ComputeBasalStress{{{1*/ 155 void Beam::ComputeBasalStress(Vec eps ,int analysis_type,int sub_analysis_type){155 void Beam::ComputeBasalStress(Vec eps){ 156 156 157 157 ISSMERROR("Not implemented yet"); … … 160 160 /*}}}*/ 161 161 /*FUNCTION Beam::ComputePressure{{{1*/ 162 void Beam::ComputePressure(Vec p_g ,int analysis_type,int sub_analysis_type){162 void Beam::ComputePressure(Vec p_g){ 163 163 164 164 int i; … … 170 170 double xyz_list[numgrids][3]; 171 171 double gauss[numgrids][numgrids]={{1,0},{0,1}}; 172 int analysis_type,sub_analysis_type; 173 174 /*retrive parameters: */ 175 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 176 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 172 177 173 178 /*Get dof list on which we will plug the pressure values: */ … … 196 201 /*}}}*/ 197 202 /*FUNCTION Beam::ComputeStrainRate{{{1*/ 198 void Beam::ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type){203 void Beam::ComputeStrainRate(Vec eps){ 199 204 200 205 ISSMERROR("Not implemented yet"); … … 203 208 /*}}}*/ 204 209 /*FUNCTION Beam::CostFunction{{{1*/ 205 double Beam::CostFunction( int,int){210 double Beam::CostFunction(void){ 206 211 ISSMERROR(" not supported yet!"); 207 212 } 208 213 /*}}}*/ 209 214 /*FUNCTION Beam::CreateKMatrix{{{1*/ 210 void Beam::CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type){ 215 void Beam::CreateKMatrix(Mat Kgg){ 216 217 int analysis_type,sub_analysis_type; 218 219 /*retrive parameters: */ 220 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 221 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 211 222 212 223 /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */ … … 215 226 if (sub_analysis_type==HutterAnalysisEnum) { 216 227 217 CreateKMatrixDiagnosticHutter( Kgg ,analysis_type,sub_analysis_type);228 CreateKMatrixDiagnosticHutter( Kgg); 218 229 } 219 230 else … … 228 239 /*FUNCTION Beam::CreateKMatrixDiagnosticHutter{{{1*/ 229 240 230 void Beam::CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type){241 void Beam::CreateKMatrixDiagnosticHutter(Mat Kgg){ 231 242 232 243 … … 279 290 /*}}}*/ 280 291 /*FUNCTION Beam::CreatePVector{{{1*/ 281 void Beam::CreatePVector(Vec pg,int analysis_type,int sub_analysis_type){ 292 void Beam::CreatePVector(Vec pg){ 293 294 int analysis_type,sub_analysis_type; 295 296 /*retrive parameters: */ 297 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 298 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 282 299 283 300 /*Just branch to the correct load generator, according to the type of analysis we are carrying out: */ 284 301 if (analysis_type==DiagnosticAnalysisEnum) { 285 302 if (sub_analysis_type==HutterAnalysisEnum) { 286 CreatePVectorDiagnosticHutter( pg ,analysis_type,sub_analysis_type);303 CreatePVectorDiagnosticHutter( pg); 287 304 } 288 305 else … … 297 314 /*FUNCTION Beam::CreatePVectorDiagnosticHutter{{{1*/ 298 315 299 void Beam::CreatePVectorDiagnosticHutter( Vec pg , int analysis_type,int sub_analysis_type){316 void Beam::CreatePVectorDiagnosticHutter( Vec pg){ 300 317 301 318 int i,j,k; … … 425 442 /*}}}*/ 426 443 /*FUNCTION Beam::Du{{{1*/ 427 void Beam::Du(Vec ,int,int){444 void Beam::Du(Vec){ 428 445 ISSMERROR(" not supported yet!"); 429 446 } … … 545 562 /*}}}*/ 546 563 /*FUNCTION Beam::Gradj{{{1*/ 547 void Beam::Gradj(Vec, int , int,int){564 void Beam::Gradj(Vec, int control_type){ 548 565 ISSMERROR(" not supported yet!"); 549 566 } 550 567 /*}}}*/ 551 568 /*FUNCTION Beam::GradjB{{{1*/ 552 void Beam::GradjB(Vec , int, int){569 void Beam::GradjB(Vec){ 553 570 ISSMERROR(" not supported yet!"); 554 571 } 555 572 /*}}}*/ 556 573 /*FUNCTION Beam::GradjDrag{{{1*/ 557 void Beam::GradjDrag(Vec , int,int){574 void Beam::GradjDrag(Vec){ 558 575 ISSMERROR(" not supported yet!"); 559 576 } 560 577 /*}}}*/ 561 578 /*FUNCTION Beam::MassFlux{{{1*/ 562 double Beam::MassFlux( double* segment ,double* ug){579 double Beam::MassFlux( double* segment){ 563 580 ISSMERROR(" not supported yet!"); 564 581 } 565 582 /*}}}*/ 566 583 /*FUNCTION Beam::Misfit{{{1*/ 567 double Beam::Misfit( int,int){584 double Beam::Misfit(void){ 568 585 ISSMERROR(" not supported yet!"); 569 586 } … … 576 593 /*}}}*/ 577 594 /*FUNCTION Beam::SurfaceArea{{{1*/ 578 double Beam::SurfaceArea( int,int){595 double Beam::SurfaceArea(void){ 579 596 ISSMERROR(" not supported yet!"); 580 597 } … … 639 656 void Beam::MinVel(double* pminvel, bool process_units){ 640 657 658 int i; 659 int dim; 641 660 const int numgrids=2; 642 661 double gaussgrids[numgrids][2]={{0,1},{1,0}}; … … 657 676 /*now, compute minimum of velocity :*/ 658 677 if(dim==2){ 659 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2));678 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)); 660 679 } 661 680 else{ 662 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2));681 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2)); 663 682 } 664 683 … … 677 696 void Beam::MaxVel(double* pmaxvel, bool process_units){ 678 697 698 int i; 699 int dim; 679 700 const int numgrids=2; 680 701 double gaussgrids[numgrids][2]={{0,1},{1,0}}; … … 695 716 /*now, compute maximum of velocity :*/ 696 717 if(dim==2){ 697 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2));718 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)); 698 719 } 699 720 else{ 700 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2));721 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2)); 701 722 } 702 723 … … 712 733 } 713 734 /*}}}*/ 735 /*FUNCTION Beam::MinVx(double* pminvx, bool process_units);{{{1*/ 736 void Beam::MinVx(double* pminvx, bool process_units){ 737 738 int i; 739 int dim; 740 const int numgrids=2; 741 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 742 double vx_values[numgrids]; 743 double minvx; 744 745 /*retrieve dim parameter: */ 746 parameters->FindParam(&dim,DimEnum); 747 748 /*retrive velocity values at nodes */ 749 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 750 751 /*now, compute minimum:*/ 752 minvx=vx_values[0]; 753 for(i=1;i<numgrids;i++){ 754 if (vx_values[i]<minvx)minvx=vx_values[i]; 755 } 756 757 /*Assign output pointers:*/ 758 *pminvx=minvx; 759 760 } 761 /*}}}*/ 762 /*FUNCTION Beam::MaxVx(double* pmaxvx, bool process_units);{{{1*/ 763 void Beam::MaxVx(double* pmaxvx, bool process_units){ 764 765 int i; 766 int dim; 767 const int numgrids=2; 768 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 769 double vx_values[numgrids]; 770 double maxvx; 771 772 /*retrieve dim parameter: */ 773 parameters->FindParam(&dim,DimEnum); 774 775 /*retrive velocity values at nodes */ 776 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 777 778 /*now, compute maximum:*/ 779 maxvx=vx_values[0]; 780 for(i=1;i<numgrids;i++){ 781 if (vx_values[i]>maxvx)maxvx=vx_values[i]; 782 } 783 784 /*Assign output pointers:*/ 785 *pmaxvx=maxvx; 786 787 } 788 /*}}}*/ 789 /*FUNCTION Beam::MaxAbsVx(double* pmaxabsvx, bool process_units);{{{1*/ 790 void Beam::MaxAbsVx(double* pmaxabsvx, bool process_units){ 791 792 int i; 793 int dim; 794 const int numgrids=2; 795 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 796 double vx_values[numgrids]; 797 double maxabsvx; 798 799 /*retrieve dim parameter: */ 800 parameters->FindParam(&dim,DimEnum); 801 802 /*retrive velocity values at nodes */ 803 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 804 805 /*now, compute maximum:*/ 806 maxabsvx=fabs(vx_values[0]); 807 for(i=1;i<numgrids;i++){ 808 if (fabs(vx_values[i])>maxabsvx)maxabsvx=fabs(vx_values[i]); 809 } 810 811 /*Assign output pointers:*/ 812 *pmaxabsvx=maxabsvx; 813 } 814 /*}}}*/ 815 /*FUNCTION Beam::MinVy(double* pminvy, bool process_units);{{{1*/ 816 void Beam::MinVy(double* pminvy, bool process_units){ 817 818 int i; 819 int dim; 820 const int numgrids=2; 821 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 822 double vy_values[numgrids]; 823 double minvy; 824 825 /*retrieve dim parameter: */ 826 parameters->FindParam(&dim,DimEnum); 827 828 /*retrive velocity values at nodes */ 829 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 830 831 /*now, compute minimum:*/ 832 minvy=vy_values[0]; 833 for(i=1;i<numgrids;i++){ 834 if (vy_values[i]<minvy)minvy=vy_values[i]; 835 } 836 837 /*Assign output pointers:*/ 838 *pminvy=minvy; 839 840 } 841 /*}}}*/ 842 /*FUNCTION Beam::MaxVy(double* pmaxvy, bool process_units);{{{1*/ 843 void Beam::MaxVy(double* pmaxvy, bool process_units){ 844 845 int i; 846 int dim; 847 const int numgrids=2; 848 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 849 double vy_values[numgrids]; 850 double maxvy; 851 852 /*retrieve dim parameter: */ 853 parameters->FindParam(&dim,DimEnum); 854 855 /*retrive velocity values at nodes */ 856 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 857 858 /*now, compute maximum:*/ 859 maxvy=vy_values[0]; 860 for(i=1;i<numgrids;i++){ 861 if (vy_values[i]>maxvy)maxvy=vy_values[i]; 862 } 863 864 /*Assign output pointers:*/ 865 *pmaxvy=maxvy; 866 867 } 868 /*}}}*/ 869 /*FUNCTION Beam::MaxAbsVy(double* pmaxabsvy, bool process_units);{{{1*/ 870 void Beam::MaxAbsVy(double* pmaxabsvy, bool process_units){ 871 872 int i; 873 int dim; 874 const int numgrids=2; 875 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 876 double vy_values[numgrids]; 877 double maxabsvy; 878 879 /*retrieve dim parameter: */ 880 parameters->FindParam(&dim,DimEnum); 881 882 /*retrive velocity values at nodes */ 883 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 884 885 /*now, compute maximum:*/ 886 maxabsvy=fabs(vy_values[0]); 887 for(i=1;i<numgrids;i++){ 888 if (fabs(vy_values[i])>maxabsvy)maxabsvy=fabs(vy_values[i]); 889 } 890 891 /*Assign output pointers:*/ 892 *pmaxabsvy=maxabsvy; 893 } 894 /*}}}*/ 895 /*FUNCTION Beam::MinVz(double* pminvz, bool process_units);{{{1*/ 896 void Beam::MinVz(double* pminvz, bool process_units){ 897 898 int i; 899 int dim; 900 const int numgrids=2; 901 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 902 double vz_values[numgrids]; 903 double minvz; 904 905 /*retrieve dim parameter: */ 906 parameters->FindParam(&dim,DimEnum); 907 908 /*retrive velocity values at nodes */ 909 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 910 911 /*now, compute minimum:*/ 912 minvz=vz_values[0]; 913 for(i=1;i<numgrids;i++){ 914 if (vz_values[i]<minvz)minvz=vz_values[i]; 915 } 916 917 /*Assign output pointers:*/ 918 *pminvz=minvz; 919 920 } 921 /*}}}*/ 922 /*FUNCTION Beam::MaxVz(double* pmaxvz, bool process_units);{{{1*/ 923 void Beam::MaxVz(double* pmaxvz, bool process_units){ 924 925 int i; 926 int dim; 927 const int numgrids=2; 928 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 929 double vz_values[numgrids]; 930 double maxvz; 931 932 /*retrieve dim parameter: */ 933 parameters->FindParam(&dim,DimEnum); 934 935 /*retrive velocity values at nodes */ 936 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 937 938 /*now, compute maximum:*/ 939 maxvz=vz_values[0]; 940 for(i=1;i<numgrids;i++){ 941 if (vz_values[i]>maxvz)maxvz=vz_values[i]; 942 } 943 944 /*Assign output pointers:*/ 945 *pmaxvz=maxvz; 946 947 } 948 /*}}}*/ 949 /*FUNCTION Beam::MaxAbsVz(double* pmaxabsvz, bool process_units);{{{1*/ 950 void Beam::MaxAbsVz(double* pmaxabsvz, bool process_units){ 951 952 int i; 953 int dim; 954 const int numgrids=2; 955 double gaussgrids[numgrids][2]={{0,1},{1,0}}; 956 double vz_values[numgrids]; 957 double maxabsvz; 958 959 /*retrieve dim parameter: */ 960 parameters->FindParam(&dim,DimEnum); 961 962 /*retrive velocity values at nodes */ 963 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 964 965 /*now, compute maximum:*/ 966 maxabsvz=fabs(vz_values[0]); 967 for(i=1;i<numgrids;i++){ 968 if (fabs(vz_values[i])>maxabsvz)maxabsvz=fabs(vz_values[i]); 969 } 970 971 /*Assign output pointers:*/ 972 *pmaxabsvz=maxabsvz; 973 } 974 /*}}}*/ 975 /*FUNCTION Beam::ReinitializeInput(int reinitialized_enum,int original_enum){{{1*/ 976 void Beam::ReinitializeInput(int reinitialized_enum,int original_enum){ 977 978 Input* original=NULL; 979 Input* copy=NULL; 980 981 /*Make a copy of the original input: */ 982 original=(Input*)this->inputs->GetInput(original_enum); 983 copy=(Input*)original->copy(); 984 985 /*Change copy enum to reinitialized_enum: */ 986 copy->ChangeEnum(reinitialized_enum); 987 988 /*Add copy into inputs, it will wipe off the one already there: */ 989 inputs->AddObject((Input*)copy); 990 } 991 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Elements/Beam.h ¶
r4042 r4043 61 61 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 62 62 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 63 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);63 void UpdateInputsFromSolution(double* solution); 64 64 void DepthAverageInputAtBase(int enum_type){ISSMERROR("not implemented yet");}; 65 65 void InputToResult(int enum_type,int step,double time); … … 67 67 /*}}}*/ 68 68 /*numerics: {{{1*/ 69 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);70 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);71 void GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type);69 void CreateKMatrix(Mat Kgg); 70 void CreatePVector(Vec pg); 71 void GetSolutionFromInputs(Vec solution); 72 72 void GetDofList(int* doflist,int* pnumberofdofs); 73 73 void GetDofList1(int* doflist); 74 void CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type);74 void CreateKMatrixDiagnosticHutter(Mat Kgg); 75 75 void GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3); 76 void CreatePVectorDiagnosticHutter(Vec pg ,int analysis_type,int sub_analysis_type);76 void CreatePVectorDiagnosticHutter(Vec pg); 77 77 void* GetMatPar(); 78 78 79 void ComputeBasalStress(Vec sigma_b ,int analysis_type,int sub_analysis_type);80 void ComputePressure(Vec p_g ,int analysis_type,int sub_analysis_type);81 void ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type);79 void ComputeBasalStress(Vec sigma_bg); 80 void ComputePressure(Vec p_gg); 81 void ComputeStrainRate(Vec epsg); 82 82 void GetNodes(void** vpnodes); 83 83 void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes); … … 85 85 void MinVel(double* pminvel, bool process_units); 86 86 void MaxVel(double* pmaxvel, bool process_units); 87 void MinVx(double* pminvx, bool process_units); 88 void MaxVx(double* pmaxvx, bool process_units); 89 void MaxAbsVx(double* pmaxabsvx, bool process_units); 90 void MinVy(double* pminvy, bool process_units); 91 void MaxVy(double* pmaxvy, bool process_units); 92 void MaxAbsVy(double* pmaxabsvy, bool process_units); 93 void MinVz(double* pminvz, bool process_units); 94 void MaxVz(double* pmaxvz, bool process_units); 95 void MaxAbsVz(double* pmaxabsvz, bool process_units); 96 void ReinitializeInput(int reinitialized_enum,int original_enum); 97 87 98 /*}}}*/ 88 99 /*not implemented: {{{1*/ … … 91 102 void GetBedList(double*); 92 103 void GetThicknessList(double* thickness_list); 93 void Du(Vec , int,int);94 void Gradj(Vec, int , int,int);95 void GradjDrag(Vec , int,int);96 void GradjB(Vec , int,int);97 double Misfit( int,int);98 double SurfaceArea( int,int);99 double CostFunction( int,int);104 void Du(Vec); 105 void Gradj(Vec, int control_type); 106 void GradjDrag(Vec); 107 void GradjB(Vec); 108 double Misfit(void); 109 double SurfaceArea(void); 110 double CostFunction(void); 100 111 void GetNodalFunctions(double* l1l2, double gauss_coord); 101 112 void GetParameterValue(double* pvalue, double* value_list,double gauss_coord); 102 113 void GetJacobianDeterminant(double* pJdet,double* z_list, double gauss_coord); 103 double MassFlux(double* segment ,double* ug);114 double MassFlux(double* segment); 104 115 /*}}}*/ 105 116 -
TabularUnified issm/trunk/src/c/objects/Elements/Element.h ¶
r4042 r4043 27 27 virtual void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters)=0; 28 28 29 virtual void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type)=0;30 virtual void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type)=0;31 virtual void GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type)=0;29 virtual void CreateKMatrix(Mat Kgg)=0; 30 virtual void CreatePVector(Vec pg)=0; 31 virtual void GetSolutionFromInputs(Vec solution)=0; 32 32 virtual void GetNodes(void** nodes)=0; 33 33 virtual void* GetMatPar()=0; … … 36 36 virtual void GetThicknessList(double* thickness_list)=0; 37 37 virtual void GetBedList(double* bed_list)=0; 38 virtual void Du(Vec du_g ,int analysis_type,int sub_analysis_type)=0;39 virtual void Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,intcontrol_type)=0;40 virtual void GradjDrag(Vec grad_g ,int analysis_type,int sub_analysis_type)=0;41 virtual void GradjB(Vec grad_g ,int analysis_type,int sub_analysis_type)=0;42 virtual double Misfit( int analysis_type,int sub_analysis_type)=0;43 virtual double CostFunction( int analysis_type,int sub_analysis_type)=0;44 virtual double SurfaceArea( int analysis_type,int sub_analysis_type)=0;38 virtual void Du(Vec du_g)=0; 39 virtual void Gradj(Vec grad_g,int control_type)=0; 40 virtual void GradjDrag(Vec grad_g)=0; 41 virtual void GradjB(Vec grad_g)=0; 42 virtual double Misfit(void)=0; 43 virtual double CostFunction(void)=0; 44 virtual double SurfaceArea(void)=0; 45 45 virtual void DepthAverageInputAtBase(int enum_type)=0; 46 virtual void ComputeBasalStress(Vec sigma_b ,int analysis_type,int sub_analysis_type)=0;47 virtual void ComputePressure(Vec p_g , int analysis_type,int sub_analysis_type)=0;48 virtual void ComputeStrainRate(Vec eps , int analysis_type,int sub_analysis_type)=0;49 virtual double MassFlux(double* segment ,double* ug)=0;46 virtual void ComputeBasalStress(Vec sigma_b)=0; 47 virtual void ComputePressure(Vec p_g)=0; 48 virtual void ComputeStrainRate(Vec eps)=0; 49 virtual double MassFlux(double* segment)=0; 50 50 virtual void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes)=0; 51 51 virtual void PatchFill(int* pcount, Patch* patch)=0; … … 55 55 virtual void MinVel(double* pminvel, bool process_units)=0; 56 56 virtual void MaxVel(double* pmaxvel, bool process_units)=0; 57 virtual void MinVx(double* pminvx, bool process_units)=0; 58 virtual void MaxVx(double* pmaxvx, bool process_units)=0; 59 virtual void MaxAbsVx(double* pmaxabsvx, bool process_units)=0; 60 virtual void MinVy(double* pminvy, bool process_units)=0; 61 virtual void MaxVy(double* pmaxvy, bool process_units)=0; 62 virtual void MaxAbsVy(double* pmaxabsvy, bool process_units)=0; 63 virtual void MinVz(double* pminvz, bool process_units)=0; 64 virtual void MaxVz(double* pmaxvz, bool process_units)=0; 65 virtual void MaxAbsVz(double* pmaxabsvz, bool process_units)=0; 66 virtual void ReinitializeInput(int reinitialized_enum,int original_enum)=0; 67 57 68 58 69 /*Implementation: */ -
TabularUnified issm/trunk/src/c/objects/Elements/Penta.cpp ¶
r4042 r4043 632 632 /*}}}*/ 633 633 /*FUNCTION Penta::UpdateInputsFromSolution {{{1*/ 634 void Penta::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 634 void Penta::UpdateInputsFromSolution(double* solution){ 635 636 int analysis_type,sub_analysis_type; 637 638 /*retrive parameters: */ 639 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 640 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 635 641 636 642 /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */ 637 643 if (analysis_type==ControlAnalysisEnum){ 638 644 639 UpdateInputsFromSolutionDiagnosticHoriz( solution ,analysis_type,sub_analysis_type);645 UpdateInputsFromSolutionDiagnosticHoriz( solution); 640 646 } 641 647 else if (analysis_type==DiagnosticAnalysisEnum){ … … 643 649 if (sub_analysis_type==HorizAnalysisEnum){ 644 650 645 UpdateInputsFromSolutionDiagnosticHoriz( solution ,analysis_type,sub_analysis_type);651 UpdateInputsFromSolutionDiagnosticHoriz( solution); 646 652 } 647 653 else if (sub_analysis_type==StokesAnalysisEnum){ 648 654 649 UpdateInputsFromSolutionDiagnosticStokes( solution ,analysis_type,sub_analysis_type);655 UpdateInputsFromSolutionDiagnosticStokes( solution); 650 656 } 651 657 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); … … 654 660 else if (analysis_type==SlopeComputeAnalysisEnum){ 655 661 656 UpdateInputsFromSolutionSlopeCompute( solution ,analysis_type,sub_analysis_type);662 UpdateInputsFromSolutionSlopeCompute( solution); 657 663 } 658 664 else if (analysis_type==PrognosticAnalysisEnum){ 659 665 660 UpdateInputsFromSolutionPrognostic( solution ,analysis_type,sub_analysis_type);666 UpdateInputsFromSolutionPrognostic( solution); 661 667 } 662 668 else if (analysis_type==Prognostic2AnalysisEnum){ 663 669 664 UpdateInputsFromSolutionPrognostic2(solution ,analysis_type,sub_analysis_type);670 UpdateInputsFromSolutionPrognostic2(solution); 665 671 } 666 672 else if (analysis_type==BalancedthicknessAnalysisEnum){ 667 673 668 UpdateInputsFromSolutionBalancedthickness( solution ,analysis_type,sub_analysis_type);674 UpdateInputsFromSolutionBalancedthickness( solution); 669 675 } 670 676 else if (analysis_type==Balancedthickness2AnalysisEnum){ 671 677 672 UpdateInputsFromSolutionBalancedthickness2( solution ,analysis_type,sub_analysis_type);678 UpdateInputsFromSolutionBalancedthickness2( solution); 673 679 } 674 680 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 675 681 676 UpdateInputsFromSolutionBalancedvelocities( solution ,analysis_type,sub_analysis_type);682 UpdateInputsFromSolutionBalancedvelocities( solution); 677 683 } 678 684 else{ … … 683 689 /*Object functions*/ 684 690 /*FUNCTION Penta::UpdateInputsFromSolutionDiagnosticHoriz {{{1*/ 685 void Penta::UpdateInputsFromSolutionDiagnosticHoriz(double* solution , int analysis_type, int sub_analysis_type){691 void Penta::UpdateInputsFromSolutionDiagnosticHoriz(double* solution){ 686 692 687 693 … … 744 750 /*}}}*/ 745 751 /*FUNCTION Penta::UpdateInputsFromSolutionDiagnosticStokes {{{1*/ 746 void Penta::UpdateInputsFromSolutionDiagnosticStokes(double* solution , int analysis_type, int sub_analysis_type){752 void Penta::UpdateInputsFromSolutionDiagnosticStokes(double* solution){ 747 753 748 754 … … 801 807 /*}}}*/ 802 808 /*FUNCTION Penta::UpdateInputsFromSolutionSlopeCompute {{{1*/ 803 void Penta::UpdateInputsFromSolutionSlopeCompute(double* solution , int analysis_type, int sub_analysis_type){809 void Penta::UpdateInputsFromSolutionSlopeCompute(double* solution){ 804 810 ISSMERROR(" not supported yet!"); 805 811 } 806 812 /*}}}*/ 807 813 /*FUNCTION Penta::UpdateInputsFromSolutionPrognostic {{{1*/ 808 void Penta::UpdateInputsFromSolutionPrognostic(double* solution , int analysis_type, int sub_analysis_type){814 void Penta::UpdateInputsFromSolutionPrognostic(double* solution){ 809 815 ISSMERROR(" not supported yet!"); 810 816 } 811 817 /*}}}*/ 812 818 /*FUNCTION Penta::UpdateInputsFromSolutionPrognostic2 {{{1*/ 813 void Penta::UpdateInputsFromSolutionPrognostic2(double* solution , int analysis_type, int sub_analysis_type){819 void Penta::UpdateInputsFromSolutionPrognostic2(double* solution){ 814 820 ISSMERROR(" not supported yet!"); 815 821 } 816 822 /*}}}*/ 817 823 /*FUNCTION Penta::UpdateInputsFromSolutionBalancedthickness {{{1*/ 818 void Penta::UpdateInputsFromSolutionBalancedthickness(double* solution , int analysis_type, int sub_analysis_type){824 void Penta::UpdateInputsFromSolutionBalancedthickness(double* solution){ 819 825 ISSMERROR(" not supported yet!"); 820 826 } 821 827 /*}}}*/ 822 828 /*FUNCTION Penta::UpdateInputsFromSolutionBalancedthickness2 {{{1*/ 823 void Penta::UpdateInputsFromSolutionBalancedthickness2(double* solution , int analysis_type, int sub_analysis_type){829 void Penta::UpdateInputsFromSolutionBalancedthickness2(double* solution){ 824 830 ISSMERROR(" not supported yet!"); 825 831 } 826 832 /*}}}*/ 827 833 /*FUNCTION Penta::UpdateInputsFromSolutionBalancedvelocities {{{1*/ 828 void Penta::UpdateInputsFromSolutionBalancedvelocities(double* solution , int analysis_type, int sub_analysis_type){834 void Penta::UpdateInputsFromSolutionBalancedvelocities(double* solution){ 829 835 ISSMERROR(" not supported yet!"); 830 836 } 831 837 /*}}}*/ 832 /*FUNCTION Penta::GetSolutionFromInputs(Vec solution,int analysis_type,int sub_analysis_type){{{1*/ 833 void Penta::GetSolutionFromInputs(Vec solution,int analysis_type,int sub_analysis_type){ 838 /*FUNCTION Penta::GetSolutionFromInputs(Vec solution){{{1*/ 839 void Penta::GetSolutionFromInputs(Vec solution){ 840 841 int analysis_type,sub_analysis_type; 842 843 /*retrive parameters: */ 844 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 845 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 846 847 834 848 /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */ 835 849 if (analysis_type==DiagnosticAnalysisEnum){ 836 850 if (sub_analysis_type==HorizAnalysisEnum){ 837 GetSolutionFromInputsDiagnosticHoriz(solution ,analysis_type,sub_analysis_type);851 GetSolutionFromInputsDiagnosticHoriz(solution); 838 852 } 839 853 else if(sub_analysis_type==VertAnalysisEnum){ 840 GetSolutionFromInputsDiagnosticVert(solution ,analysis_type,sub_analysis_type);854 GetSolutionFromInputsDiagnosticVert(solution); 841 855 } 842 856 else if(sub_analysis_type==StokesAnalysisEnum){ 843 GetSolutionFromInputsDiagnosticStokes(solution ,analysis_type,sub_analysis_type);857 GetSolutionFromInputsDiagnosticStokes(solution); 844 858 } 845 859 else ISSMERROR("sub_analysis: %i (%s) not supported yet",sub_analysis_type,EnumAsString(sub_analysis_type)); … … 850 864 } 851 865 /*}}}*/ 852 /*FUNCTION Penta::GetSolutionFromInputsDiagnosticHoriz(Vec solution ,int analysis_type,int sub_analysis_type){{{1*/853 void Penta::GetSolutionFromInputsDiagnosticHoriz(Vec solution ,int analysis_type,int sub_analysis_type){866 /*FUNCTION Penta::GetSolutionFromInputsDiagnosticHoriz(Vec solution){{{1*/ 867 void Penta::GetSolutionFromInputsDiagnosticHoriz(Vec solution){ 854 868 855 869 int i; … … 886 900 } 887 901 /*}}}*/ 888 /*FUNCTION Penta::GetSolutionFromInputsDiagnosticVert(Vec solution ,int analysis_type,int sub_analysis_type){{{1*/889 void Penta::GetSolutionFromInputsDiagnosticVert(Vec solution ,int analysis_type,int sub_analysis_type){902 /*FUNCTION Penta::GetSolutionFromInputsDiagnosticVert(Vec solution){{{1*/ 903 void Penta::GetSolutionFromInputsDiagnosticVert(Vec solution){ 890 904 891 905 int i; … … 918 932 } 919 933 /*}}}*/ 920 /*FUNCTION Penta::GetSolutionFromInputsDiagnosticStokes(Vec solution ,int analysis_type,int sub_analysis_type){{{1*/921 void Penta::GetSolutionFromInputsDiagnosticStokes(Vec solution ,int analysis_type,int sub_analysis_type){934 /*FUNCTION Penta::GetSolutionFromInputsDiagnosticStokes(Vec solution){{{1*/ 935 void Penta::GetSolutionFromInputsDiagnosticStokes(Vec solution){ 922 936 923 937 int i; … … 1001 1015 /*}}}*/ 1002 1016 /*FUNCTION Penta::ComputeBasalStress {{{1*/ 1003 void Penta::ComputeBasalStress(Vec sigma_b ,int analysis_type,int sub_analysis_type){1017 void Penta::ComputeBasalStress(Vec sigma_b){ 1004 1018 1005 1019 int i,j; … … 1019 1033 double stresstensor[6]={0.0}; 1020 1034 double viscosity; 1035 int analysis_type,sub_analysis_type; 1021 1036 1022 1037 int dofv[3]={0,1,2}; … … 1047 1062 double stokesreconditioning; 1048 1063 1064 1065 /*retrive parameters: */ 1066 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1067 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 1068 1049 1069 /*Check analysis_types*/ 1050 1070 if (analysis_type!=DiagnosticAnalysisEnum || sub_analysis_type!=StokesAnalysisEnum) ISSMERROR("Not supported yet!"); … … 1123 1143 /*}}}*/ 1124 1144 /*FUNCTION Penta::ComputePressure {{{1*/ 1125 void Penta::ComputePressure(Vec pg ,int analysis_type,int sub_analysis_type){1145 void Penta::ComputePressure(Vec pg){ 1126 1146 1127 1147 int i; … … 1168 1188 /*}}}*/ 1169 1189 /*FUNCTION Penta::ComputeStrainRate {{{1*/ 1170 void Penta::ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type){1190 void Penta::ComputeStrainRate(Vec eps){ 1171 1191 1172 1192 ISSMERROR("Not implemented yet"); … … 1175 1195 /*}}}*/ 1176 1196 /*FUNCTION Penta::CostFunction {{{1*/ 1177 double Penta::CostFunction( int analysis_type,int sub_analysis_type){1197 double Penta::CostFunction(void){ 1178 1198 1179 1199 double J; … … 1206 1226 * and compute CostFunction*/ 1207 1227 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria (lower face). 1208 J=tria->CostFunction( analysis_type,sub_analysis_type);1228 J=tria->CostFunction(); 1209 1229 delete tria; 1210 1230 return J; … … 1213 1233 1214 1234 tria=(Tria*)SpawnTria(3,4,5); //grids 3, 4 and 5 make the new tria (upper face). 1215 J=tria->CostFunction( analysis_type,sub_analysis_type);1235 J=tria->CostFunction(); 1216 1236 delete tria; 1217 1237 return J; … … 1220 1240 /*}}}*/ 1221 1241 /*FUNCTION Penta::CreateKMatrix {{{1*/ 1222 void Penta::CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type){ 1242 void Penta::CreateKMatrix(Mat Kgg){ 1243 1244 int analysis_type,sub_analysis_type; 1245 1246 /*retrive parameters: */ 1247 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1248 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 1223 1249 1224 1250 /*if debugging mode, check that all pointers exist*/ … … 1227 1253 /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */ 1228 1254 if (analysis_type==ControlAnalysisEnum){ 1229 CreateKMatrixDiagnosticHoriz( Kgg ,analysis_type,sub_analysis_type);1255 CreateKMatrixDiagnosticHoriz( Kgg); 1230 1256 } 1231 1257 else if (analysis_type==DiagnosticAnalysisEnum){ 1232 1258 if (sub_analysis_type==HorizAnalysisEnum){ 1233 CreateKMatrixDiagnosticHoriz( Kgg ,analysis_type,sub_analysis_type);1259 CreateKMatrixDiagnosticHoriz( Kgg); 1234 1260 } 1235 1261 else if (sub_analysis_type==HutterAnalysisEnum){ 1236 CreateKMatrixDiagnosticHutter( Kgg ,analysis_type,sub_analysis_type);1262 CreateKMatrixDiagnosticHutter( Kgg); 1237 1263 } 1238 1264 else if (sub_analysis_type==VertAnalysisEnum){ 1239 CreateKMatrixDiagnosticVert( Kgg ,analysis_type,sub_analysis_type);1265 CreateKMatrixDiagnosticVert( Kgg); 1240 1266 } 1241 1267 else if (sub_analysis_type==StokesAnalysisEnum){ 1242 CreateKMatrixDiagnosticStokes( Kgg ,analysis_type,sub_analysis_type);1268 CreateKMatrixDiagnosticStokes( Kgg); 1243 1269 } 1244 1270 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); 1245 1271 } 1246 1272 else if (analysis_type==SlopeComputeAnalysisEnum){ 1247 CreateKMatrixSlopeCompute( Kgg ,analysis_type,sub_analysis_type);1273 CreateKMatrixSlopeCompute( Kgg); 1248 1274 } 1249 1275 else if (analysis_type==PrognosticAnalysisEnum){ 1250 CreateKMatrixPrognostic( Kgg ,analysis_type,sub_analysis_type);1276 CreateKMatrixPrognostic( Kgg); 1251 1277 } 1252 1278 else if (analysis_type==BalancedthicknessAnalysisEnum){ 1253 CreateKMatrixBalancedthickness( Kgg ,analysis_type,sub_analysis_type);1279 CreateKMatrixBalancedthickness( Kgg); 1254 1280 } 1255 1281 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 1256 CreateKMatrixBalancedvelocities( Kgg ,analysis_type,sub_analysis_type);1282 CreateKMatrixBalancedvelocities( Kgg); 1257 1283 } 1258 1284 else if (analysis_type==ThermalAnalysisEnum){ 1259 CreateKMatrixThermal( Kgg ,analysis_type,sub_analysis_type);1285 CreateKMatrixThermal( Kgg); 1260 1286 } 1261 1287 else if (analysis_type==MeltingAnalysisEnum){ 1262 CreateKMatrixMelting( Kgg ,analysis_type,sub_analysis_type);1288 CreateKMatrixMelting( Kgg); 1263 1289 } 1264 1290 else ISSMERROR("%s%i%s\n","analysis: ",analysis_type," not supported yet"); … … 1268 1294 /*FUNCTION Penta::CreateKMatrixBalancedthickness {{{1*/ 1269 1295 1270 void Penta::CreateKMatrixBalancedthickness(Mat Kgg ,int analysis_type,int sub_analysis_type){1296 void Penta::CreateKMatrixBalancedthickness(Mat Kgg){ 1271 1297 1272 1298 /*Collapsed formulation: */ … … 1289 1315 /*Spawn Tria element from the base of the Penta: */ 1290 1316 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 1291 tria->CreateKMatrix(Kgg , analysis_type,sub_analysis_type);1317 tria->CreateKMatrix(Kgg); 1292 1318 delete tria; 1293 1319 return; … … 1297 1323 /*FUNCTION Penta::CreateKMatrixBalancedvelocities {{{1*/ 1298 1324 1299 void Penta::CreateKMatrixBalancedvelocities(Mat Kgg ,int analysis_type,int sub_analysis_type){1325 void Penta::CreateKMatrixBalancedvelocities(Mat Kgg){ 1300 1326 1301 1327 /*Collapsed formulation: */ … … 1318 1344 /*Spawn Tria element from the base of the Penta: */ 1319 1345 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 1320 tria->CreateKMatrix(Kgg ,analysis_type,sub_analysis_type);1346 tria->CreateKMatrix(Kgg); 1321 1347 delete tria; 1322 1348 return; … … 1325 1351 /*}}}*/ 1326 1352 /*FUNCTION Penta::CreateKMatrixDiagnosticHoriz {{{1*/ 1327 void Penta::CreateKMatrixDiagnosticHoriz( Mat Kgg , int analysis_type,int sub_analysis_type){1353 void Penta::CreateKMatrixDiagnosticHoriz( Mat Kgg){ 1328 1354 1329 1355 /* local declarations */ … … 1437 1463 *and use its CreateKMatrix functionality to fill the global stiffness matrix: */ 1438 1464 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 1439 tria->CreateKMatrix(Kgg , analysis_type,sub_analysis_type);1465 tria->CreateKMatrix(Kgg); 1440 1466 delete tria; 1441 1467 return; … … 1528 1554 1529 1555 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 1530 tria->CreateKMatrixDiagnosticHorizFriction(Kgg ,analysis_type,sub_analysis_type);1556 tria->CreateKMatrixDiagnosticHorizFriction(Kgg); 1531 1557 delete tria; 1532 1558 } … … 1548 1574 /*}}}*/ 1549 1575 /*FUNCTION Penta::CreateKMatrixDiagnosticHutter{{{1*/ 1550 void Penta::CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type){1576 void Penta::CreateKMatrixDiagnosticHutter(Mat Kgg){ 1551 1577 1552 1578 /*Collapsed formulation: */ … … 1566 1592 for(i=0;i<3;i++){ 1567 1593 beam=(Beam*)SpawnBeam(i,i+3); //[0 3], [1 4] and [2 5] are the four vertical edges of the Penta 1568 beam->CreateKMatrix(Kgg ,analysis_type,sub_analysis_type);1594 beam->CreateKMatrix(Kgg); 1569 1595 } 1570 1596 … … 1575 1601 /*}}}*/ 1576 1602 /*FUNCTION Penta::CreateKMatrixDiagnosticStokes {{{1*/ 1577 void Penta::CreateKMatrixDiagnosticStokes( Mat Kgg , int analysis_type,int sub_analysis_type){1603 void Penta::CreateKMatrixDiagnosticStokes( Mat Kgg){ 1578 1604 1579 1605 int i,j; … … 1649 1675 /*parameters: */ 1650 1676 double stokesreconditioning; 1677 int analysis_type; 1651 1678 1652 1679 /*inputs: */ … … 1654 1681 bool onbed; 1655 1682 bool shelf; 1683 1684 /*retrive parameters: */ 1685 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1656 1686 1657 1687 /*retrieve inputs :*/ … … 1840 1870 /*}}}*/ 1841 1871 /*FUNCTION Penta::CreateKMatrixDiagnosticVert {{{1*/ 1842 void Penta::CreateKMatrixDiagnosticVert( Mat Kgg , int analysis_type,int sub_analysis_type){1872 void Penta::CreateKMatrixDiagnosticVert( Mat Kgg){ 1843 1873 1844 1874 /* local declarations */ … … 1895 1925 if(onsurface){ 1896 1926 tria=(Tria*)SpawnTria(3,4,5); //nodes 3,4 and 5 are on the surface 1897 tria->CreateKMatrixDiagnosticSurfaceVert(Kgg , analysis_type,sub_analysis_type);1927 tria->CreateKMatrixDiagnosticSurfaceVert(Kgg); 1898 1928 delete tria; 1899 1929 } … … 1965 1995 /*}}}*/ 1966 1996 /*FUNCTION Penta::CreateKMatrixMelting {{{1*/ 1967 void Penta::CreateKMatrixMelting(Mat Kgg ,int analysis_type,int sub_analysis_type){1997 void Penta::CreateKMatrixMelting(Mat Kgg){ 1968 1998 1969 1999 Tria* tria=NULL; … … 1986 2016 1987 2017 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 1988 tria->CreateKMatrixMelting(Kgg , analysis_type,sub_analysis_type);2018 tria->CreateKMatrixMelting(Kgg); 1989 2019 delete tria; 1990 2020 return; … … 1994 2024 /*FUNCTION Penta::CreateKMatrixPrognostic {{{1*/ 1995 2025 1996 void Penta::CreateKMatrixPrognostic(Mat Kgg ,int analysis_type,int sub_analysis_type){2026 void Penta::CreateKMatrixPrognostic(Mat Kgg){ 1997 2027 1998 2028 /*Collapsed formulation: */ … … 2015 2045 /*Spawn Tria element from the base of the Penta: */ 2016 2046 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2017 tria->CreateKMatrix(Kgg , analysis_type,sub_analysis_type);2047 tria->CreateKMatrix(Kgg); 2018 2048 delete tria; 2019 2049 return; … … 2023 2053 /*FUNCTION Penta::CreateKMatrixSlopeCompute {{{1*/ 2024 2054 2025 void Penta::CreateKMatrixSlopeCompute(Mat Kgg ,int analysis_type,int sub_analysis_type){2055 void Penta::CreateKMatrixSlopeCompute(Mat Kgg){ 2026 2056 2027 2057 /*Collapsed formulation: */ … … 2045 2075 /*Spawn Tria element from the base of the Penta: */ 2046 2076 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2047 tria->CreateKMatrix(Kgg , analysis_type,sub_analysis_type);2077 tria->CreateKMatrix(Kgg); 2048 2078 delete tria; 2049 2079 return; … … 2052 2082 /*}}}*/ 2053 2083 /*FUNCTION Penta::CreateKMatrixThermal {{{1*/ 2054 void Penta::CreateKMatrixThermal(Mat Kgg ,int analysis_type,int sub_analysis_type){2084 void Penta::CreateKMatrixThermal(Mat Kgg){ 2055 2085 2056 2086 /* local declarations */ … … 2291 2321 2292 2322 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2293 tria->CreateKMatrixThermal(Kgg , analysis_type,sub_analysis_type);2323 tria->CreateKMatrixThermal(Kgg); 2294 2324 delete tria; 2295 2325 } … … 2297 2327 /*}}}*/ 2298 2328 /*FUNCTION Penta::CreatePVector {{{1*/ 2299 void Penta::CreatePVector(Vec pg, int analysis_type,int sub_analysis_type){ 2329 void Penta::CreatePVector(Vec pg){ 2330 2331 int analysis_type,sub_analysis_type; 2332 2333 /*retrive parameters: */ 2334 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 2335 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 2300 2336 2301 2337 /*if debugging mode, check that all pointers exist*/ … … 2304 2340 /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */ 2305 2341 if (analysis_type==ControlAnalysisEnum){ 2306 CreatePVectorDiagnosticHoriz( pg ,analysis_type,sub_analysis_type);2342 CreatePVectorDiagnosticHoriz( pg); 2307 2343 } 2308 2344 else if (analysis_type==DiagnosticAnalysisEnum){ 2309 2345 if (sub_analysis_type==HorizAnalysisEnum){ 2310 CreatePVectorDiagnosticHoriz( pg ,analysis_type,sub_analysis_type);2346 CreatePVectorDiagnosticHoriz( pg); 2311 2347 } 2312 2348 else if (sub_analysis_type==HutterAnalysisEnum){ 2313 CreatePVectorDiagnosticHutter( pg ,analysis_type,sub_analysis_type);2349 CreatePVectorDiagnosticHutter( pg); 2314 2350 } 2315 2351 else if (sub_analysis_type==VertAnalysisEnum){ 2316 CreatePVectorDiagnosticVert( pg ,analysis_type,sub_analysis_type);2352 CreatePVectorDiagnosticVert( pg); 2317 2353 } 2318 2354 else if (sub_analysis_type==StokesAnalysisEnum){ 2319 CreatePVectorDiagnosticStokes( pg ,analysis_type,sub_analysis_type);2355 CreatePVectorDiagnosticStokes( pg); 2320 2356 } 2321 2357 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); 2322 2358 } 2323 2359 else if (analysis_type==SlopeComputeAnalysisEnum){ 2324 CreatePVectorSlopeCompute( pg ,analysis_type,sub_analysis_type);2360 CreatePVectorSlopeCompute( pg); 2325 2361 } 2326 2362 else if (analysis_type==PrognosticAnalysisEnum){ 2327 CreatePVectorPrognostic( pg ,analysis_type,sub_analysis_type);2363 CreatePVectorPrognostic( pg); 2328 2364 } 2329 2365 else if (analysis_type==BalancedthicknessAnalysisEnum){ 2330 CreatePVectorBalancedthickness( pg ,analysis_type,sub_analysis_type);2366 CreatePVectorBalancedthickness( pg); 2331 2367 } 2332 2368 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 2333 CreatePVectorBalancedvelocities( pg ,analysis_type,sub_analysis_type);2369 CreatePVectorBalancedvelocities( pg); 2334 2370 } 2335 2371 else if (analysis_type==ThermalAnalysisEnum){ 2336 CreatePVectorThermal( pg ,analysis_type,sub_analysis_type);2372 CreatePVectorThermal( pg); 2337 2373 } 2338 2374 else if (analysis_type==MeltingAnalysisEnum){ 2339 CreatePVectorMelting( pg ,analysis_type,sub_analysis_type);2375 CreatePVectorMelting( pg); 2340 2376 } 2341 2377 else ISSMERROR("%s%i%s\n","analysis: ",analysis_type," not supported yet"); … … 2344 2380 /*}}}*/ 2345 2381 /*FUNCTION Penta::CreatePVectorBalancedthickness {{{1*/ 2346 void Penta::CreatePVectorBalancedthickness( Vec pg , int analysis_type,int sub_analysis_type){2382 void Penta::CreatePVectorBalancedthickness( Vec pg){ 2347 2383 2348 2384 /*Collapsed formulation: */ … … 2365 2401 /*Spawn Tria element from the base of the Penta: */ 2366 2402 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2367 tria->CreatePVector(pg , analysis_type,sub_analysis_type);2403 tria->CreatePVector(pg); 2368 2404 delete tria; 2369 2405 return; … … 2371 2407 /*}}}*/ 2372 2408 /*FUNCTION Penta::CreatePVectorBalancedvelocities {{{1*/ 2373 void Penta::CreatePVectorBalancedvelocities( Vec pg , int analysis_type,int sub_analysis_type){2409 void Penta::CreatePVectorBalancedvelocities( Vec pg){ 2374 2410 2375 2411 /*Collapsed formulation: */ … … 2392 2428 /*Spawn Tria element from the base of the Penta: */ 2393 2429 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2394 tria->CreatePVector(pg , analysis_type,sub_analysis_type);2430 tria->CreatePVector(pg); 2395 2431 delete tria; 2396 2432 return; … … 2398 2434 /*}}}*/ 2399 2435 /*FUNCTION Penta::CreatePVectorDiagnosticHoriz {{{1*/ 2400 void Penta::CreatePVectorDiagnosticHoriz( Vec pg , int analysis_type,int sub_analysis_type){2436 void Penta::CreatePVectorDiagnosticHoriz( Vec pg){ 2401 2437 2402 2438 int i,j; … … 2471 2507 *and use its CreatePVector functionality to return an elementary load vector: */ 2472 2508 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2473 tria->CreatePVector(pg , analysis_type,sub_analysis_type);2509 tria->CreatePVector(pg); 2474 2510 delete tria; 2475 2511 return; … … 2546 2582 /*}}}*/ 2547 2583 /*FUNCTION Penta::CreatePVectorDiagnosticHutter{{{1*/ 2548 void Penta::CreatePVectorDiagnosticHutter(Vec pg ,int analysis_type,int sub_analysis_type){2584 void Penta::CreatePVectorDiagnosticHutter(Vec pg){ 2549 2585 2550 2586 /*Collapsed formulation: */ … … 2564 2600 for(i=0;i<3;i++){ 2565 2601 beam=(Beam*)SpawnBeam(i,i+3); //[0 3], [1 4] and [2 5] are the four vertical edges of the Penta 2566 beam->CreatePVector(pg ,analysis_type,sub_analysis_type);2602 beam->CreatePVector(pg); 2567 2603 } 2568 2604 … … 2573 2609 /*}}}*/ 2574 2610 /*FUNCTION Penta::CreatePVectorDiagnosticStokes {{{1*/ 2575 void Penta::CreatePVectorDiagnosticStokes( Vec pg , int analysis_type,int sub_analysis_type){2611 void Penta::CreatePVectorDiagnosticStokes( Vec pg){ 2576 2612 2577 2613 /*indexing: */ … … 2814 2850 /*}}}*/ 2815 2851 /*FUNCTION Penta::CreatePVectorDiagnosticVert {{{1*/ 2816 void Penta::CreatePVectorDiagnosticVert( Vec pg , int analysis_type,int sub_analysis_type){2852 void Penta::CreatePVectorDiagnosticVert( Vec pg){ 2817 2853 2818 2854 int i; … … 2875 2911 if(onbed){ 2876 2912 tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 are on the bedrock 2877 tria->CreatePVectorDiagnosticBaseVert(pg , analysis_type,sub_analysis_type);2913 tria->CreatePVectorDiagnosticBaseVert(pg); 2878 2914 delete tria; 2879 2915 } … … 2940 2976 /*}}}*/ 2941 2977 /*FUNCTION Penta::CreatePVectorMelting {{{1*/ 2942 void Penta::CreatePVectorMelting( Vec pg , int analysis_type,int sub_analysis_type){2978 void Penta::CreatePVectorMelting( Vec pg){ 2943 2979 return; 2944 2980 } … … 2946 2982 /*FUNCTION Penta::CreatePVectorPrognostic {{{1*/ 2947 2983 2948 void Penta::CreatePVectorPrognostic( Vec pg , int analysis_type,int sub_analysis_type){2984 void Penta::CreatePVectorPrognostic( Vec pg){ 2949 2985 2950 2986 /*Collapsed formulation: */ … … 2967 3003 /*Spawn Tria element from the base of the Penta: */ 2968 3004 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2969 tria->CreatePVector(pg , analysis_type,sub_analysis_type);3005 tria->CreatePVector(pg); 2970 3006 delete tria; 2971 3007 return; … … 2974 3010 /*FUNCTION Penta::CreatePVectorSlopeCompute {{{1*/ 2975 3011 2976 void Penta::CreatePVectorSlopeCompute( Vec pg , int analysis_type,int sub_analysis_type){3012 void Penta::CreatePVectorSlopeCompute( Vec pg){ 2977 3013 2978 3014 /*Collapsed formulation: */ … … 2995 3031 /*Spawn Tria element from the base of the Penta: */ 2996 3032 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 2997 tria->CreatePVector(pg , analysis_type,sub_analysis_type);3033 tria->CreatePVector(pg); 2998 3034 delete tria; 2999 3035 return; … … 3001 3037 /*}}}*/ 3002 3038 /*FUNCTION Penta::CreatePVectorThermal {{{1*/ 3003 void Penta::CreatePVectorThermal( Vec pg , int analysis_type,int sub_analysis_type){3039 void Penta::CreatePVectorThermal( Vec pg){ 3004 3040 3005 3041 /*indexing: */ … … 3160 3196 3161 3197 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 3162 tria->CreatePVectorThermalShelf(pg , analysis_type,sub_analysis_type);3198 tria->CreatePVectorThermalShelf(pg); 3163 3199 delete tria; 3164 3200 } … … 3168 3204 3169 3205 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 3170 tria->CreatePVectorThermalSheet(pg , analysis_type,sub_analysis_type);3206 tria->CreatePVectorThermalSheet(pg); 3171 3207 delete tria; 3172 3208 } … … 3183 3219 /*}}}*/ 3184 3220 /*FUNCTION Penta::Du {{{1*/ 3185 void Penta::Du(Vec du_g ,int analysis_type,int sub_analysis_type){3221 void Penta::Du(Vec du_g){ 3186 3222 3187 3223 int i; … … 3214 3250 * and compute Du*/ 3215 3251 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria (lower face). 3216 tria->Du(du_g ,analysis_type,sub_analysis_type);3252 tria->Du(du_g); 3217 3253 delete tria; 3218 3254 return; … … 3221 3257 3222 3258 tria=(Tria*)SpawnTria(3,4,5); //grids 3, 4 and 5 make the new tria (upper face). 3223 tria->Du(du_g ,analysis_type,sub_analysis_type);3259 tria->Du(du_g); 3224 3260 delete tria; 3225 3261 return; … … 4519 4555 /*}}}*/ 4520 4556 /*FUNCTION Penta::Gradj {{{1*/ 4521 void Penta::Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,intcontrol_type){4557 void Penta::Gradj(Vec grad_g,int control_type){ 4522 4558 4523 4559 /*inputs: */ … … 4531 4567 4532 4568 if (control_type==DragCoefficientEnum){ 4533 GradjDrag( grad_g ,analysis_type,sub_analysis_type);4569 GradjDrag( grad_g); 4534 4570 } 4535 4571 else if (control_type=RheologyBEnum){ 4536 GradjB( grad_g , analysis_type,sub_analysis_type);4572 GradjB( grad_g); 4537 4573 } 4538 4574 else ISSMERROR("%s%i","control type not supported yet: ",control_type); … … 4540 4576 /*}}}*/ 4541 4577 /*FUNCTION Penta::GradjDrag {{{1*/ 4542 void Penta::GradjDrag(Vec grad_g ,int analysis_type,int sub_analysis_type){4578 void Penta::GradjDrag(Vec grad_g){ 4543 4579 4544 4580 Tria* tria=NULL; … … 4548 4584 bool onbed; 4549 4585 bool shelf; 4586 int analysis_type,sub_analysis_type; 4587 4588 /*retrive parameters: */ 4589 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 4590 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 4550 4591 4551 4592 /*retrieve inputs :*/ … … 4567 4608 /*MacAyeal or Pattyn*/ 4568 4609 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 4569 tria->GradjDrag( grad_g ,analysis_type,sub_analysis_type);4610 tria->GradjDrag( grad_g); 4570 4611 delete tria; 4571 4612 return; … … 4575 4616 /*Stokes*/ 4576 4617 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria. 4577 tria->GradjDragStokes( grad_g ,analysis_type,sub_analysis_type);4618 tria->GradjDragStokes( grad_g); 4578 4619 delete tria; 4579 4620 return; … … 4583 4624 /*}}}*/ 4584 4625 /*FUNCTION Penta::GradjB {{{1*/ 4585 void Penta::GradjB(Vec grad_g ,int analysis_type,int sub_analysis_type){4626 void Penta::GradjB(Vec grad_g){ 4586 4627 4587 4628 Tria* tria=NULL; … … 4607 4648 * and compute gardj*/ 4608 4649 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria (lower face). 4609 tria->GradjB(grad_g ,analysis_type,sub_analysis_type);4650 tria->GradjB(grad_g); 4610 4651 delete tria; 4611 4652 return; … … 4614 4655 /*B is a 2d field, use MacAyeal(2d) gradient even if it is Stokes or Pattyn*/ 4615 4656 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria (lower face). 4616 tria->GradjB(grad_g ,analysis_type,sub_analysis_type);4657 tria->GradjB(grad_g); 4617 4658 delete tria; 4618 4659 return; … … 4621 4662 /*}}}*/ 4622 4663 /*FUNCTION Penta::MassFlux {{{1*/ 4623 double Penta::MassFlux( double* segment ,double* ug){4664 double Penta::MassFlux( double* segment){ 4624 4665 ISSMERROR(" not supported yet!"); 4625 4666 } 4626 4667 /*}}}*/ 4627 4668 /*FUNCTION Penta::Misfit {{{1*/ 4628 double Penta::Misfit( int analysis_type,int sub_analysis_type){4669 double Penta::Misfit(void){ 4629 4670 4630 4671 double J; … … 4657 4698 * and compute Misfit*/ 4658 4699 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria (lower face). 4659 J=tria->Misfit( analysis_type,sub_analysis_type);4700 J=tria->Misfit(); 4660 4701 delete tria; 4661 4702 return J; … … 4664 4705 4665 4706 tria=(Tria*)SpawnTria(3,4,5); //grids 3, 4 and 5 make the new tria (upper face). 4666 J=tria->Misfit( analysis_type,sub_analysis_type);4707 J=tria->Misfit(); 4667 4708 delete tria; 4668 4709 return J; … … 4771 4812 /*}}}1*/ 4772 4813 /*FUNCTION Penta::SurfaceArea {{{1*/ 4773 double Penta::SurfaceArea( int analysis_type,int sub_analysis_type){4814 double Penta::SurfaceArea(void){ 4774 4815 4775 4816 double S; … … 4802 4843 * and compute SurfaceArea*/ 4803 4844 tria=(Tria*)SpawnTria(0,1,2); //grids 0, 1 and 2 make the new tria (lower face). 4804 S=tria->SurfaceArea( analysis_type,sub_analysis_type);4845 S=tria->SurfaceArea(); 4805 4846 delete tria; 4806 4847 return S; … … 4809 4850 4810 4851 tria=(Tria*)SpawnTria(3,4,5); //grids 3, 4 and 5 make the new tria (upper face). 4811 S=tria->SurfaceArea( analysis_type,sub_analysis_type);4852 S=tria->SurfaceArea(); 4812 4853 delete tria; 4813 4854 return S; … … 4953 4994 void Penta::MinVel(double* pminvel, bool process_units){ 4954 4995 4996 int i; 4997 int dim; 4955 4998 const int numgrids=6; 4956 4999 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; … … 4971 5014 /*now, compute minimum of velocity :*/ 4972 5015 if(dim==2){ 4973 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2));5016 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)); 4974 5017 } 4975 5018 else{ 4976 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2));5019 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2)); 4977 5020 } 4978 5021 … … 4991 5034 void Penta::MaxVel(double* pmaxvel, bool process_units){ 4992 5035 5036 int i; 5037 int dim; 4993 5038 const int numgrids=6; 4994 5039 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; … … 5009 5054 /*now, compute maximum of velocity :*/ 5010 5055 if(dim==2){ 5011 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2));5056 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)); 5012 5057 } 5013 5058 else{ 5014 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2));5059 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2)); 5015 5060 } 5016 5061 … … 5026 5071 } 5027 5072 /*}}}*/ 5073 /*FUNCTION Penta::MinVx(double* pminvx, bool process_units);{{{1*/ 5074 void Penta::MinVx(double* pminvx, bool process_units){ 5075 5076 int i; 5077 int dim; 5078 const int numgrids=6; 5079 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5080 double vx_values[numgrids]; 5081 double minvx; 5082 5083 /*retrieve dim parameter: */ 5084 parameters->FindParam(&dim,DimEnum); 5085 5086 /*retrive velocity values at nodes */ 5087 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 5088 5089 /*now, compute minimum:*/ 5090 minvx=vx_values[0]; 5091 for(i=1;i<numgrids;i++){ 5092 if (vx_values[i]<minvx)minvx=vx_values[i]; 5093 } 5094 5095 /*Assign output pointers:*/ 5096 *pminvx=minvx; 5097 5098 } 5099 /*}}}*/ 5100 /*FUNCTION Penta::MaxVx(double* pmaxvx, bool process_units);{{{1*/ 5101 void Penta::MaxVx(double* pmaxvx, bool process_units){ 5102 5103 int i; 5104 int dim; 5105 const int numgrids=6; 5106 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5107 double vx_values[numgrids]; 5108 double maxvx; 5109 5110 /*retrieve dim parameter: */ 5111 parameters->FindParam(&dim,DimEnum); 5112 5113 /*retrive velocity values at nodes */ 5114 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 5115 5116 /*now, compute maximum:*/ 5117 maxvx=vx_values[0]; 5118 for(i=1;i<numgrids;i++){ 5119 if (vx_values[i]>maxvx)maxvx=vx_values[i]; 5120 } 5121 5122 /*Assign output pointers:*/ 5123 *pmaxvx=maxvx; 5124 5125 } 5126 /*}}}*/ 5127 /*FUNCTION Penta::MaxAbsVx(double* pmaxabsvx, bool process_units);{{{1*/ 5128 void Penta::MaxAbsVx(double* pmaxabsvx, bool process_units){ 5129 5130 int i; 5131 int dim; 5132 const int numgrids=6; 5133 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5134 double vx_values[numgrids]; 5135 double maxabsvx; 5136 5137 /*retrieve dim parameter: */ 5138 parameters->FindParam(&dim,DimEnum); 5139 5140 /*retrive velocity values at nodes */ 5141 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 5142 5143 /*now, compute maximum:*/ 5144 maxabsvx=fabs(vx_values[0]); 5145 for(i=1;i<numgrids;i++){ 5146 if (fabs(vx_values[i])>maxabsvx)maxabsvx=fabs(vx_values[i]); 5147 } 5148 5149 /*Assign output pointers:*/ 5150 *pmaxabsvx=maxabsvx; 5151 } 5152 /*}}}*/ 5153 /*FUNCTION Penta::MinVy(double* pminvy, bool process_units);{{{1*/ 5154 void Penta::MinVy(double* pminvy, bool process_units){ 5155 5156 int i; 5157 int dim; 5158 const int numgrids=6; 5159 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5160 double vy_values[numgrids]; 5161 double minvy; 5162 5163 /*retrieve dim parameter: */ 5164 parameters->FindParam(&dim,DimEnum); 5165 5166 /*retrive velocity values at nodes */ 5167 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 5168 5169 /*now, compute minimum:*/ 5170 minvy=vy_values[0]; 5171 for(i=1;i<numgrids;i++){ 5172 if (vy_values[i]<minvy)minvy=vy_values[i]; 5173 } 5174 5175 /*Assign output pointers:*/ 5176 *pminvy=minvy; 5177 5178 } 5179 /*}}}*/ 5180 /*FUNCTION Penta::MaxVy(double* pmaxvy, bool process_units);{{{1*/ 5181 void Penta::MaxVy(double* pmaxvy, bool process_units){ 5182 5183 int i; 5184 int dim; 5185 const int numgrids=6; 5186 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5187 double vy_values[numgrids]; 5188 double maxvy; 5189 5190 /*retrieve dim parameter: */ 5191 parameters->FindParam(&dim,DimEnum); 5192 5193 /*retrive velocity values at nodes */ 5194 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 5195 5196 /*now, compute maximum:*/ 5197 maxvy=vy_values[0]; 5198 for(i=1;i<numgrids;i++){ 5199 if (vy_values[i]>maxvy)maxvy=vy_values[i]; 5200 } 5201 5202 /*Assign output pointers:*/ 5203 *pmaxvy=maxvy; 5204 5205 } 5206 /*}}}*/ 5207 /*FUNCTION Penta::MaxAbsVy(double* pmaxabsvy, bool process_units);{{{1*/ 5208 void Penta::MaxAbsVy(double* pmaxabsvy, bool process_units){ 5209 5210 int i; 5211 int dim; 5212 const int numgrids=6; 5213 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5214 double vy_values[numgrids]; 5215 double maxabsvy; 5216 5217 /*retrieve dim parameter: */ 5218 parameters->FindParam(&dim,DimEnum); 5219 5220 /*retrive velocity values at nodes */ 5221 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 5222 5223 /*now, compute maximum:*/ 5224 maxabsvy=fabs(vy_values[0]); 5225 for(i=1;i<numgrids;i++){ 5226 if (fabs(vy_values[i])>maxabsvy)maxabsvy=fabs(vy_values[i]); 5227 } 5228 5229 /*Assign output pointers:*/ 5230 *pmaxabsvy=maxabsvy; 5231 } 5232 /*}}}*/ 5233 /*FUNCTION Penta::MinVz(double* pminvz, bool process_units);{{{1*/ 5234 void Penta::MinVz(double* pminvz, bool process_units){ 5235 5236 int i; 5237 int dim; 5238 const int numgrids=6; 5239 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5240 double vz_values[numgrids]; 5241 double minvz; 5242 5243 /*retrieve dim parameter: */ 5244 parameters->FindParam(&dim,DimEnum); 5245 5246 /*retrive velocity values at nodes */ 5247 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 5248 5249 /*now, compute minimum:*/ 5250 minvz=vz_values[0]; 5251 for(i=1;i<numgrids;i++){ 5252 if (vz_values[i]<minvz)minvz=vz_values[i]; 5253 } 5254 5255 /*Assign output pointers:*/ 5256 *pminvz=minvz; 5257 5258 } 5259 /*}}}*/ 5260 /*FUNCTION Penta::MaxVz(double* pmaxvz, bool process_units);{{{1*/ 5261 void Penta::MaxVz(double* pmaxvz, bool process_units){ 5262 5263 int i; 5264 int dim; 5265 const int numgrids=6; 5266 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5267 double vz_values[numgrids]; 5268 double maxvz; 5269 5270 /*retrieve dim parameter: */ 5271 parameters->FindParam(&dim,DimEnum); 5272 5273 /*retrive velocity values at nodes */ 5274 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 5275 5276 /*now, compute maximum:*/ 5277 maxvz=vz_values[0]; 5278 for(i=1;i<numgrids;i++){ 5279 if (vz_values[i]>maxvz)maxvz=vz_values[i]; 5280 } 5281 5282 /*Assign output pointers:*/ 5283 *pmaxvz=maxvz; 5284 5285 } 5286 /*}}}*/ 5287 /*FUNCTION Penta::MaxAbsVz(double* pmaxabsvz, bool process_units);{{{1*/ 5288 void Penta::MaxAbsVz(double* pmaxabsvz, bool process_units){ 5289 5290 int i; 5291 int dim; 5292 const int numgrids=6; 5293 double gaussgrids[numgrids][4]={{1,0,0,-1},{0,1,0,-1},{0,0,1,-1},{1,0,0,1},{0,1,0,1},{0,0,1,1}}; 5294 double vz_values[numgrids]; 5295 double maxabsvz; 5296 5297 /*retrieve dim parameter: */ 5298 parameters->FindParam(&dim,DimEnum); 5299 5300 /*retrive velocity values at nodes */ 5301 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 5302 5303 /*now, compute maximum:*/ 5304 maxabsvz=fabs(vz_values[0]); 5305 for(i=1;i<numgrids;i++){ 5306 if (fabs(vz_values[i])>maxabsvz)maxabsvz=fabs(vz_values[i]); 5307 } 5308 5309 /*Assign output pointers:*/ 5310 *pmaxabsvz=maxabsvz; 5311 } 5312 /*}}}*/ 5313 /*FUNCTION Penta::ReinitializeInput(int reinitialized_enum,int original_enum){{{1*/ 5314 void Penta::ReinitializeInput(int reinitialized_enum,int original_enum){ 5315 5316 Input* original=NULL; 5317 Input* copy=NULL; 5318 5319 /*Make a copy of the original input: */ 5320 original=(Input*)this->inputs->GetInput(original_enum); 5321 copy=(Input*)original->copy(); 5322 5323 /*Change copy enum to reinitialized_enum: */ 5324 copy->ChangeEnum(reinitialized_enum); 5325 5326 /*Add copy into inputs, it will wipe off the one already there: */ 5327 inputs->AddObject((Input*)copy); 5328 } 5329 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Elements/Penta.h ¶
r4042 r4043 70 70 /*}}}*/ 71 71 /*FUNCTION element numerical routines {{{1*/ 72 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);73 void CreateKMatrixDiagnosticHoriz( Mat Kgg , int analysis_type,int sub_analysis_type);74 void CreateKMatrixDiagnosticHutter( Mat Kgg , int analysis_type,int sub_analysis_type);75 void CreateKMatrixDiagnosticVert( Mat Kgg , int analysis_type,int sub_analysis_type);76 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);77 void GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type);78 void GetSolutionFromInputsDiagnosticHoriz(Vec solution ,int analysis_type,int sub_analysis_type);79 void GetSolutionFromInputsDiagnosticVert(Vec solution ,int analysis_type,int sub_analysis_type);80 void GetSolutionFromInputsDiagnosticStokes(Vec solution ,int analysis_type,int sub_analysis_type);72 void CreateKMatrix(Mat Kggg); 73 void CreateKMatrixDiagnosticHoriz( Mat Kgg); 74 void CreateKMatrixDiagnosticHutter( Mat Kgg); 75 void CreateKMatrixDiagnosticVert( Mat Kgg); 76 void CreatePVector(Vec pg); 77 void GetSolutionFromInputs(Vec solution); 78 void GetSolutionFromInputsDiagnosticHoriz(Vec solutiong); 79 void GetSolutionFromInputsDiagnosticVert(Vec solutiong); 80 void GetSolutionFromInputsDiagnosticStokes(Vec solutiong); 81 81 void GetDofList(int* doflist,int* pnumberofdofs); 82 82 void GetDofList1(int* doflist); … … 85 85 void GetNodes(void** nodes); 86 86 bool GetOnBed(); 87 void Du(Vec du_g,int analysis_type,int sub_analysis_type); 88 void Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,int control_type); 89 void GradjDrag(Vec grad_g,int analysis_type,int sub_analysis_type); 90 void GradjB(Vec grad_g,int analysis_type,int sub_analysis_type); 91 double Misfit(int analysis_type,int sub_analysis_type); 92 double SurfaceArea(int analysis_type,int sub_analysis_type); 93 double CostFunction(int analysis_type,int sub_analysis_type); 94 95 void GetThicknessList(double* thickness_list); 96 void GetBedList(double* bed_list); 97 87 void Du(Vec du_gg); 88 void Gradj(Vec grad_gg,int control_type); 89 void GradjDrag(Vec grad_gg); 90 void GradjB(Vec grad_gg); 91 double Misfit(void); 92 double SurfaceArea(void); 93 double CostFunction(void); 94 void GetThicknessList(double* thickness_list); 95 void GetBedList(double* bed_list); 98 96 void GetStrainRate(double* epsilon, double* velocity, double* xyz_list, double* gauss_coord); 99 97 void GetB(double* pB, double* xyz_list, double* gauss_coord); … … 106 104 void GetNodalFunctionsDerivativesReference(double* dl1dl6,double* gauss_coord); 107 105 void GetJacobianInvert(double* Jinv, double* xyz_list,double* gauss_coord); 108 void CreatePVectorDiagnosticHoriz( Vec pg , int analysis_type,int sub_analysis_type);109 void CreatePVectorDiagnosticHutter( Vec pg , int analysis_type,int sub_analysis_type);110 void CreatePVectorDiagnosticVert( Vec pg , int analysis_type,int sub_analysis_type);106 void CreatePVectorDiagnosticHoriz( Vec pg); 107 void CreatePVectorDiagnosticHutter( Vec pg); 108 void CreatePVectorDiagnosticVert( Vec pg); 111 109 void GetParameterValue(double* pvalue, double* v_list,double* gauss_coord); 112 110 void GetParameterDerivativeValue(double* p, double* p_list,double* xyz_list, double* gauss_coord); … … 115 113 void InputExtrude(int enum_type); 116 114 void DepthAverageInputAtBase(int enum_type); 117 void ComputeBasalStress(Vec sigma_b ,int analysis_type,int sub_analysis_type);118 void ComputePressure(Vec p_g ,int analysis_type,int sub_analysis_type);119 void ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type);120 void CreateKMatrixSlopeCompute(Mat Kgg ,int analysis_type,int sub_analysis_type);121 void CreatePVectorSlopeCompute( Vec pg , int analysis_type,int sub_analysis_type);122 void CreateKMatrixPrognostic(Mat Kgg ,int analysis_type,int sub_analysis_type);123 void CreatePVectorPrognostic( Vec pg , int analysis_type,int sub_analysis_type);124 void CreateKMatrixBalancedthickness(Mat Kgg ,int analysis_type,int sub_analysis_type);125 void CreateKMatrixBalancedvelocities(Mat Kgg ,int analysis_type,int sub_analysis_type);126 void CreateKMatrixDiagnosticStokes( Mat Kgg , int analysis_type,int sub_analysis_type);127 void CreatePVectorBalancedthickness( Vec pg , int analysis_type,int sub_analysis_type);128 void CreatePVectorBalancedvelocities( Vec pg , int analysis_type,int sub_analysis_type);129 void CreatePVectorDiagnosticStokes( Vec pg , int analysis_type,int sub_analysis_type);115 void ComputeBasalStress(Vec sigma_bg); 116 void ComputePressure(Vec p_gg); 117 void ComputeStrainRate(Vec epsg); 118 void CreateKMatrixSlopeCompute(Mat Kggg); 119 void CreatePVectorSlopeCompute( Vec pg); 120 void CreateKMatrixPrognostic(Mat Kggg); 121 void CreatePVectorPrognostic( Vec pg); 122 void CreateKMatrixBalancedthickness(Mat Kggg); 123 void CreateKMatrixBalancedvelocities(Mat Kggg); 124 void CreateKMatrixDiagnosticStokes( Mat Kgg); 125 void CreatePVectorBalancedthickness( Vec pg); 126 void CreatePVectorBalancedvelocities( Vec pg); 127 void CreatePVectorDiagnosticStokes( Vec pg); 130 128 void ReduceMatrixStokes(double* Ke_reduced, double* Ke_temp); 131 129 void GetMatrixInvert(double* Ke_invert, double* Ke); … … 140 138 void ReduceVectorStokes(double* Pe_reduced, double* Ke_temp, double* Pe_temp); 141 139 void GetNodalFunctionsStokes(double* l1l7, double* gauss_coord); 142 void CreateKMatrixThermal(Mat Kgg ,int analysis_type,int sub_analysis_type);140 void CreateKMatrixThermal(Mat Kggg); 143 141 void GetB_conduct(double* B_conduct, double* xyz_list, double* gauss_coord); 144 142 void GetB_advec(double* B_advec, double* xyz_list, double* gauss_coord); 145 143 void GetBprime_advec(double* Bprime_advec, double* xyz_list, double* gauss_coord); 146 144 void GetB_artdiff(double* B_artdiff, double* xyz_list, double* gauss_coord); 147 void CreateKMatrixMelting(Mat Kgg ,int analysis_type,int sub_analysis_type);148 void CreatePVectorThermal( Vec pg , int analysis_type,int sub_analysis_type);149 void CreatePVectorMelting( Vec pg , int analysis_type,int sub_analysis_type);145 void CreateKMatrixMelting(Mat Kggg); 146 void CreatePVectorThermal( Vec pg); 147 void CreatePVectorMelting( Vec pg); 150 148 void GetPhi(double* phi, double* epsilon, double viscosity); 151 double MassFlux(double* segment ,double* ug);149 double MassFlux(double* segment); 152 150 void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes); 153 151 void PatchFill(int* pcount, Patch* patch); 154 152 void MinVel(double* pminvel, bool process_units); 155 153 void MaxVel(double* pmaxvel, bool process_units); 154 void MinVx(double* pminvx, bool process_units); 155 void MaxVx(double* pmaxvx, bool process_units); 156 void MaxAbsVx(double* pmaxabsvx, bool process_units); 157 void MinVy(double* pminvy, bool process_units); 158 void MaxVy(double* pmaxvy, bool process_units); 159 void MaxAbsVy(double* pmaxabsvy, bool process_units); 160 void MinVz(double* pminvz, bool process_units); 161 void MaxVz(double* pmaxvz, bool process_units); 162 void MaxAbsVz(double* pmaxabsvz, bool process_units); 163 void ReinitializeInput(int reinitialized_enum,int original_enum); 164 156 165 157 166 /*updates: */ 158 167 void UpdateFromDakota(void* inputs); 159 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);160 void UpdateInputsFromSolutionDiagnosticHoriz( double* solution ,int analysis_type,int sub_analysis_type);161 void UpdateInputsFromSolutionDiagnosticStokes( double* solution ,int analysis_type,int sub_analysis_type);162 void UpdateInputsFromSolutionSlopeCompute( double* solution ,int analysis_type,int sub_analysis_type);163 void UpdateInputsFromSolutionPrognostic( double* solution ,int analysis_type,int sub_analysis_type);164 void UpdateInputsFromSolutionPrognostic2(double* solution ,int analysis_type,int sub_analysis_type);165 void UpdateInputsFromSolutionBalancedthickness( double* solution ,int analysis_type,int sub_analysis_type);166 void UpdateInputsFromSolutionBalancedthickness2( double* solution ,int analysis_type,int sub_analysis_type);167 void UpdateInputsFromSolutionBalancedvelocities( double* solution ,int analysis_type,int sub_analysis_type);168 void UpdateInputsFromSolution(double* solutiong); 169 void UpdateInputsFromSolutionDiagnosticHoriz( double* solutiong); 170 void UpdateInputsFromSolutionDiagnosticStokes( double* solutiong); 171 void UpdateInputsFromSolutionSlopeCompute( double* solutiong); 172 void UpdateInputsFromSolutionPrognostic( double* solutiong); 173 void UpdateInputsFromSolutionPrognostic2(double* solutiong); 174 void UpdateInputsFromSolutionBalancedthickness( double* solutiong); 175 void UpdateInputsFromSolutionBalancedthickness2( double* solutiong); 176 void UpdateInputsFromSolutionBalancedvelocities( double* solutiong); 168 177 void UpdateInputsFromVector(double* vector, int name, int type); 169 178 void UpdateInputsFromVector(int* vector, int name, int type); -
TabularUnified issm/trunk/src/c/objects/Elements/Sing.cpp ¶
r4042 r4043 128 128 /*}}}*/ 129 129 /*FUNCTION Sing::UpdateInputsFromSolution {{{1*/ 130 void Sing::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){131 ISSMERROR(" not supported yet!"); 132 } 133 /*}}}*/ 134 /*FUNCTION Sing::GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type);{{{1*/135 void Sing::GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type){130 void Sing::UpdateInputsFromSolution(double* solution){ 131 ISSMERROR(" not supported yet!"); 132 } 133 /*}}}*/ 134 /*FUNCTION Sing::GetSolutionFromInputs(Vec solution);{{{1*/ 135 void Sing::GetSolutionFromInputs(Vec solution){ 136 136 ISSMERROR(" not supported yet!"); 137 137 } … … 150 150 /*Object functions*/ 151 151 /*FUNCTION Sing::ComputeBasalStress {{{1*/ 152 void Sing::ComputeBasalStress(Vec p_g ,int analysis_type,int sub_analysis_type){152 void Sing::ComputeBasalStress(Vec p_g){ 153 153 154 154 ISSMERROR("Not implemented yet"); … … 157 157 /*}}}*/ 158 158 /*FUNCTION Sing::ComputePressure {{{1*/ 159 void Sing::ComputePressure(Vec p_g ,int analysis_type,int sub_analysis_type){159 void Sing::ComputePressure(Vec p_g){ 160 160 161 161 int dof; … … 179 179 /*}}}*/ 180 180 /*FUNCTION Sing::ComputeStrainRate {{{1*/ 181 void Sing::ComputeStrainRate(Vec p_g ,int analysis_type,int sub_analysis_type){181 void Sing::ComputeStrainRate(Vec p_g){ 182 182 183 183 ISSMERROR("Not implemented yet"); … … 186 186 /*}}}*/ 187 187 /*FUNCTION Sing::CostFunction {{{1*/ 188 double Sing::CostFunction( int,int){188 double Sing::CostFunction(){ 189 189 ISSMERROR(" not supported yet!"); 190 190 } … … 192 192 /*FUNCTION Sing::CreateKMatrix {{{1*/ 193 193 194 void Sing::CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type){ 194 void Sing::CreateKMatrix(Mat Kgg){ 195 196 int analysis_type,sub_analysis_type; 197 198 /*retrive parameters: */ 199 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 200 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 195 201 196 202 /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */ 197 203 if ((analysis_type==DiagnosticAnalysisEnum) && (sub_analysis_type==HutterAnalysisEnum)){ 198 204 199 CreateKMatrixDiagnosticHutter( Kgg ,analysis_type,sub_analysis_type);205 CreateKMatrixDiagnosticHutter( Kgg); 200 206 201 207 } … … 207 213 /*}}}*/ 208 214 /*FUNCTION Sing::CreateKMatrixDiagnosticHutter {{{1*/ 209 void Sing::CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type){215 void Sing::CreateKMatrixDiagnosticHutter(Mat Kgg){ 210 216 211 217 const int numgrids=1; … … 229 235 /*}}}*/ 230 236 /*FUNCTION Sing::CreatePVector {{{1*/ 231 void Sing::CreatePVector(Vec pg,int analysis_type,int sub_analysis_type){ 237 void Sing::CreatePVector(Vec pg){ 238 239 int analysis_type,sub_analysis_type; 240 241 /*retrive parameters: */ 242 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 243 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 232 244 233 245 /*Just branch to the correct load generator, according to the type of analysis we are carrying out: */ 234 246 if ((analysis_type==DiagnosticAnalysisEnum) && (sub_analysis_type==HutterAnalysisEnum)){ 235 247 236 CreatePVectorDiagnosticHutter( pg ,analysis_type,sub_analysis_type);248 CreatePVectorDiagnosticHutter( pg); 237 249 238 250 } … … 244 256 /*}}}*/ 245 257 /*FUNCTION Sing::CreatePVectorDiagnosticHutter {{{1*/ 246 void Sing::CreatePVectorDiagnosticHutter( Vec pg , int analysis_type,int sub_analysis_type){258 void Sing::CreatePVectorDiagnosticHutter( Vec pg){ 247 259 248 260 const int numgrids=1; … … 294 306 /*}}}*/ 295 307 /*FUNCTION Sing::Du {{{1*/ 296 void Sing::Du(Vec ,int,int){308 void Sing::Du(Vec){ 297 309 ISSMERROR(" not supported yet!"); 298 310 } … … 371 383 /*}}}*/ 372 384 /*FUNCTION Sing::Gradj {{{1*/ 373 void Sing::Gradj(Vec, int , int ,int){385 void Sing::Gradj(Vec, int control_type){ 374 386 ISSMERROR(" not supported yet!"); 375 387 } 376 388 /*}}}*/ 377 389 /*FUNCTION Sing::GradB {{{1*/ 378 void Sing::GradjB(Vec , int,int){390 void Sing::GradjB(Vec){ 379 391 ISSMERROR(" not supported yet!"); 380 392 } 381 393 /*}}}*/ 382 394 /*FUNCTION Sing::GradjDrag {{{1*/ 383 void Sing::GradjDrag(Vec , int,int){395 void Sing::GradjDrag(Vec){ 384 396 ISSMERROR(" not supported yet!"); 385 397 } 386 398 /*}}}*/ 387 399 /*FUNCTION Sing::MassFlux {{{1*/ 388 double Sing::MassFlux( double* segment ,double* ug){400 double Sing::MassFlux( double* segment){ 389 401 ISSMERROR(" not supported yet!"); 390 402 } 391 403 /*}}}*/ 392 404 /*FUNCTION Sing::Misfit {{{1*/ 393 double Sing::Misfit( int,int){405 double Sing::Misfit(void){ 394 406 ISSMERROR(" not supported yet!"); 395 407 } … … 402 414 /*}}}*/ 403 415 /*FUNCTION Sing::SurfaceArea {{{1*/ 404 double Sing::SurfaceArea( int,int){416 double Sing::SurfaceArea( void){ 405 417 ISSMERROR(" not supported yet!"); 406 418 } … … 463 475 void Sing::MinVel(double* pminvel, bool process_units){ 464 476 477 int dim; 465 478 double vx; 466 479 double vy; … … 489 502 void Sing::MaxVel(double* pmaxvel, bool process_units){ 490 503 504 int dim; 491 505 double vx; 492 506 double vy; … … 512 526 } 513 527 /*}}}*/ 528 /*FUNCTION Sing::MinVx(double* pminvx, bool process_units);{{{1*/ 529 void Sing::MinVx(double* pminvx, bool process_units){ 530 531 int dim; 532 double minvx; 533 534 /*retrieve dim parameter: */ 535 parameters->FindParam(&dim,DimEnum); 536 537 /*retrive velocity values at nodes */ 538 inputs->GetParameterValue(&minvx,VxEnum); 539 540 /*Assign output pointers:*/ 541 *pminvx=minvx; 542 543 } 544 /*}}}*/ 545 /*FUNCTION Sing::MaxVx(double* pmaxvx, bool process_units);{{{1*/ 546 void Sing::MaxVx(double* pmaxvx, bool process_units){ 547 548 int dim; 549 double maxvx; 550 551 /*retrieve dim parameter: */ 552 parameters->FindParam(&dim,DimEnum); 553 554 /*retrive velocity values at nodes */ 555 inputs->GetParameterValue(&maxvx,VxEnum); 556 557 /*Assign output pointers:*/ 558 *pmaxvx=maxvx; 559 560 } 561 /*}}}*/ 562 /*FUNCTION Sing::MaxAbsVx(double* pmaxabsvx, bool process_units);{{{1*/ 563 void Sing::MaxAbsVx(double* pmaxabsvx, bool process_units){ 564 565 int dim; 566 double maxabsvx; 567 568 /*retrieve dim parameter: */ 569 parameters->FindParam(&dim,DimEnum); 570 571 /*retrive velocity values at nodes */ 572 inputs->GetParameterValue(&maxabsvx,VxEnum); 573 maxabsvx=fabs(maxabsvx); 574 575 /*Assign output pointers:*/ 576 *pmaxabsvx=maxabsvx; 577 } 578 /*}}}*/ 579 /*FUNCTION Sing::MinVy(double* pminvy, bool process_units);{{{1*/ 580 void Sing::MinVy(double* pminvy, bool process_units){ 581 582 int dim; 583 double minvy; 584 585 /*retrieve dim parameter: */ 586 parameters->FindParam(&dim,DimEnum); 587 588 /*retrive velocity values at nodes */ 589 inputs->GetParameterValue(&minvy,VyEnum); 590 591 /*Assign output pointers:*/ 592 *pminvy=minvy; 593 594 } 595 /*}}}*/ 596 /*FUNCTION Sing::MaxVy(double* pmaxvy, bool process_units);{{{1*/ 597 void Sing::MaxVy(double* pmaxvy, bool process_units){ 598 599 int dim; 600 double maxvy; 601 602 /*retrieve dim parameter: */ 603 parameters->FindParam(&dim,DimEnum); 604 605 /*retrive velocity values at nodes */ 606 inputs->GetParameterValue(&maxvy,VyEnum); 607 608 /*Assign output pointers:*/ 609 *pmaxvy=maxvy; 610 611 } 612 /*}}}*/ 613 /*FUNCTION Sing::MaxAbsVy(double* pmaxabsvy, bool process_units);{{{1*/ 614 void Sing::MaxAbsVy(double* pmaxabsvy, bool process_units){ 615 616 int dim; 617 double maxabsvy; 618 619 /*retrieve dim parameter: */ 620 parameters->FindParam(&dim,DimEnum); 621 622 /*retrive velocity values at nodes */ 623 inputs->GetParameterValue(&maxabsvy,VyEnum); 624 maxabsvy=fabs(maxabsvy); 625 626 /*Assign output pointers:*/ 627 *pmaxabsvy=maxabsvy; 628 } 629 /*}}}*/ 630 /*FUNCTION Sing::MinVz(double* pminvz, bool process_units);{{{1*/ 631 void Sing::MinVz(double* pminvz, bool process_units){ 632 633 int dim; 634 double minvz; 635 636 /*retrieve dim parameter: */ 637 parameters->FindParam(&dim,DimEnum); 638 639 /*retrive velocity values at nodes */ 640 inputs->GetParameterValue(&minvz,VzEnum); 641 642 /*Assign output pointers:*/ 643 *pminvz=minvz; 644 645 } 646 /*}}}*/ 647 /*FUNCTION Sing::MaxVz(double* pmaxvz, bool process_units);{{{1*/ 648 void Sing::MaxVz(double* pmaxvz, bool process_units){ 649 650 int dim; 651 double maxvz; 652 653 /*retrieve dim parameter: */ 654 parameters->FindParam(&dim,DimEnum); 655 656 /*retrive velocity values at nodes */ 657 inputs->GetParameterValue(&maxvz,VzEnum); 658 659 /*Assign output pointers:*/ 660 *pmaxvz=maxvz; 661 662 } 663 /*}}}*/ 664 /*FUNCTION Sing::MaxAbsVz(double* pmaxabsvz, bool process_units);{{{1*/ 665 void Sing::MaxAbsVz(double* pmaxabsvz, bool process_units){ 666 667 int dim; 668 double maxabsvz; 669 670 /*retrieve dim parameter: */ 671 parameters->FindParam(&dim,DimEnum); 672 673 /*retrive velocity values at nodes */ 674 inputs->GetParameterValue(&maxabsvz,VzEnum); 675 maxabsvz=fabs(maxabsvz); 676 677 /*Assign output pointers:*/ 678 *pmaxabsvz=maxabsvz; 679 } 680 /*}}}*/ 681 /*FUNCTION Sing::ReinitializeInput(int reinitialized_enum,int original_enum){{{1*/ 682 void Sing::ReinitializeInput(int reinitialized_enum,int original_enum){ 683 684 Input* original=NULL; 685 Input* copy=NULL; 686 687 /*Make a copy of the original input: */ 688 original=(Input*)this->inputs->GetInput(original_enum); 689 copy=(Input*)original->copy(); 690 691 /*Change copy enum to reinitialized_enum: */ 692 copy->ChangeEnum(reinitialized_enum); 693 694 /*Add copy into inputs, it will wipe off the one already there: */ 695 inputs->AddObject((Input*)copy); 696 } 697 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Elements/Sing.h ¶
r4042 r4043 61 61 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 62 62 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 63 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);63 void UpdateInputsFromSolution(double* solutiong); 64 64 void DepthAverageInputAtBase(int enum_type){ISSMERROR("not implemented yet");}; 65 65 void InputToResult(int enum_type,int step,double time); … … 67 67 /*}}}*/ 68 68 /*numerics: {{{1*/ 69 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);70 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);69 void CreateKMatrix(Mat Kggg); 70 void CreatePVector(Vec pg); 71 71 void GetDofList(int* doflist,int* pnumberofdofs); 72 void GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type);72 void GetSolutionFromInputs(Vec solution); 73 73 void GetDofList1(int* doflist); 74 void CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type);74 void CreateKMatrixDiagnosticHutter(Mat Kggg); 75 75 void GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3); 76 void CreatePVectorDiagnosticHutter(Vec pg ,int analysis_type,int sub_analysis_type);76 void CreatePVectorDiagnosticHutter(Vec pgg); 77 77 void* GetMatPar(); 78 void ComputeBasalStress(Vec sigma_b ,int analysis_type,int sub_analysis_type);79 void ComputePressure(Vec p_g ,int analysis_type,int sub_analysis_type);80 void ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type);78 void ComputeBasalStress(Vec sigma_bg); 79 void ComputePressure(Vec p_gg); 80 void ComputeStrainRate(Vec epsg); 81 81 void GetNodes(void** vpnodes); 82 82 void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes); … … 84 84 void MinVel(double* pminvel, bool process_units); 85 85 void MaxVel(double* pmaxvel, bool process_units); 86 void MinVx(double* pminvx, bool process_units); 87 void MaxVx(double* pmaxvx, bool process_units); 88 void MaxAbsVx(double* pmaxabsvx, bool process_units); 89 void MinVy(double* pminvy, bool process_units); 90 void MaxVy(double* pmaxvy, bool process_units); 91 void MaxAbsVy(double* pmaxabsvy, bool process_units); 92 void MinVz(double* pminvz, bool process_units); 93 void MaxVz(double* pmaxvz, bool process_units); 94 void MaxAbsVz(double* pmaxabsvz, bool process_units); 95 void ReinitializeInput(int reinitialized_enum,int original_enum); 96 86 97 87 98 /*}}}*/ … … 91 102 void GetBedList(double*); 92 103 void GetThicknessList(double* thickness_list); 93 void Du(Vec ,int,int);94 void Gradj(Vec, int , int,int);95 void GradjDrag(Vec , int,int);96 void GradjB(Vec , int,int);97 double Misfit( int,int);98 double SurfaceArea( int,int);99 double CostFunction( int,int);100 double MassFlux(double* segment ,double* ug);104 void Du(Vec); 105 void Gradj(Vec, int control_type); 106 void GradjDrag(Vec); 107 void GradjB(Vec); 108 double Misfit(void); 109 double SurfaceArea(void); 110 double CostFunction(void); 111 double MassFlux(double* segment); 101 112 /*}}}*/ 102 113 -
TabularUnified issm/trunk/src/c/objects/Elements/Tria.cpp ¶
r4042 r4043 551 551 /*}}}*/ 552 552 /*FUNCTION Tria::UpdateInputsFromSolution {{{1*/ 553 void Tria::UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ 553 void Tria::UpdateInputsFromSolution(double* solution){ 554 555 int analysis_type,sub_analysis_type; 556 557 /*retrive parameters: */ 558 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 559 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 554 560 555 561 /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */ 556 562 if (analysis_type==ControlAnalysisEnum){ 557 UpdateInputsFromSolutionDiagnosticHoriz( solution ,analysis_type,sub_analysis_type);563 UpdateInputsFromSolutionDiagnosticHoriz( solution); 558 564 } 559 565 else if (analysis_type==DiagnosticAnalysisEnum){ 560 566 if (sub_analysis_type==HorizAnalysisEnum){ 561 UpdateInputsFromSolutionDiagnosticHoriz( solution ,analysis_type,sub_analysis_type);567 UpdateInputsFromSolutionDiagnosticHoriz( solution); 562 568 } 563 569 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); 564 570 } 565 571 else if (analysis_type==SlopeComputeAnalysisEnum){ 566 UpdateInputsFromSolutionSlopeCompute( solution ,analysis_type,sub_analysis_type);572 UpdateInputsFromSolutionSlopeCompute( solution); 567 573 } 568 574 else if (analysis_type==PrognosticAnalysisEnum){ 569 UpdateInputsFromSolutionPrognostic( solution ,analysis_type,sub_analysis_type);575 UpdateInputsFromSolutionPrognostic( solution); 570 576 } 571 577 else if (analysis_type==Prognostic2AnalysisEnum){ 572 UpdateInputsFromSolutionPrognostic2(solution ,analysis_type,sub_analysis_type);578 UpdateInputsFromSolutionPrognostic2(solution); 573 579 } 574 580 else if (analysis_type==BalancedthicknessAnalysisEnum){ 575 UpdateInputsFromSolutionBalancedthickness( solution ,analysis_type,sub_analysis_type);581 UpdateInputsFromSolutionBalancedthickness( solution); 576 582 } 577 583 else if (analysis_type==Balancedthickness2AnalysisEnum){ 578 UpdateInputsFromSolutionBalancedthickness2( solution ,analysis_type,sub_analysis_type);584 UpdateInputsFromSolutionBalancedthickness2( solution); 579 585 } 580 586 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 581 UpdateInputsFromSolutionBalancedvelocities( solution ,analysis_type,sub_analysis_type);587 UpdateInputsFromSolutionBalancedvelocities( solution); 582 588 } 583 589 else{ … … 587 593 /*}}}*/ 588 594 /*FUNCTION Tria::UpdateInputsFromSolutionDiagnosticHoriz {{{1*/ 589 void Tria::UpdateInputsFromSolutionDiagnosticHoriz(double* solution , int analysis_type, int sub_analysis_type){595 void Tria::UpdateInputsFromSolutionDiagnosticHoriz(double* solution){ 590 596 591 597 int i; … … 647 653 /*}}}*/ 648 654 /*FUNCTION Tria::UpdateInputsFromSolutionSlopeCompute {{{1*/ 649 void Tria::UpdateInputsFromSolutionSlopeCompute(double* solution , int analysis_type, int sub_analysis_type){655 void Tria::UpdateInputsFromSolutionSlopeCompute(double* solution){ 650 656 ISSMERROR(" not supported yet!"); 651 657 } 652 658 /*}}}*/ 653 659 /*FUNCTION Tria::UpdateInputsFromSolutionPrognostic {{{1*/ 654 void Tria::UpdateInputsFromSolutionPrognostic(double* solution , int analysis_type, int sub_analysis_type){660 void Tria::UpdateInputsFromSolutionPrognostic(double* solution){ 655 661 656 662 int i; … … 679 685 /*}}}*/ 680 686 /*FUNCTION Tria::UpdateInputsFromSolutionPrognostic2 {{{1*/ 681 void Tria::UpdateInputsFromSolutionPrognostic2(double* solution , int analysis_type, int sub_analysis_type){687 void Tria::UpdateInputsFromSolutionPrognostic2(double* solution){ 682 688 ISSMERROR(" not supported yet!"); 683 689 } 684 690 /*}}}*/ 685 691 /*FUNCTION Tria::UpdateInputsFromSolutionBalancedthickness {{{1*/ 686 void Tria::UpdateInputsFromSolutionBalancedthickness(double* solution , int analysis_type, int sub_analysis_type){692 void Tria::UpdateInputsFromSolutionBalancedthickness(double* solution){ 687 693 688 694 int i; … … 711 717 /*}}}*/ 712 718 /*FUNCTION Tria::UpdateInputsFromSolutionBalancedthickness2 {{{1*/ 713 void Tria::UpdateInputsFromSolutionBalancedthickness2(double* solution , int analysis_type, int sub_analysis_type){719 void Tria::UpdateInputsFromSolutionBalancedthickness2(double* solution){ 714 720 ISSMERROR(" not supported yet!"); 715 721 } 716 722 /*}}}*/ 717 723 /*FUNCTION Tria::UpdateInputsFromSolutionBalancedvelocities {{{1*/ 718 void Tria::UpdateInputsFromSolutionBalancedvelocities(double* solution , int analysis_type, int sub_analysis_type){724 void Tria::UpdateInputsFromSolutionBalancedvelocities(double* solution){ 719 725 ISSMERROR(" not supported yet!"); 720 726 } 721 727 /*}}}*/ 722 /*FUNCTION Tria::GetSolutionFromInputs(Vec solution,int analysis_type,int sub_analysis_type){{{1*/ 723 void Tria::GetSolutionFromInputs(Vec solution,int analysis_type,int sub_analysis_type){ 728 /*FUNCTION Tria::GetSolutionFromInputs(Vec solution){{{1*/ 729 void Tria::GetSolutionFromInputs(Vec solution){ 730 731 int analysis_type,sub_analysis_type; 732 733 /*retrive parameters: */ 734 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 735 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 736 724 737 /*Just branch to the correct UpdateInputsFromSolution generator, according to the type of analysis we are carrying out: */ 725 738 if (analysis_type==DiagnosticAnalysisEnum){ 726 739 if (sub_analysis_type==HorizAnalysisEnum){ 727 GetSolutionFromInputsDiagnosticHoriz(solution ,analysis_type,sub_analysis_type);740 GetSolutionFromInputsDiagnosticHoriz(solution); 728 741 } 729 742 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); … … 734 747 } 735 748 /*}}}*/ 736 /*FUNCTION Tria::GetSolutionFromInputsDiagnosticHoriz(Vec solution ,int analysis_type,int sub_analysis_type){{{1*/737 void Tria::GetSolutionFromInputsDiagnosticHoriz(Vec solution ,int analysis_type,int sub_analysis_type){749 /*FUNCTION Tria::GetSolutionFromInputsDiagnosticHoriz(Vec solution){{{1*/ 750 void Tria::GetSolutionFromInputsDiagnosticHoriz(Vec solution){ 738 751 739 752 int i; … … 782 795 /*}}}*/ 783 796 /*FUNCTION Tria::ComputeBasalStress {{{1*/ 784 void Tria::ComputeBasalStress(Vec eps ,int analysis_type,int sub_analysis_type){797 void Tria::ComputeBasalStress(Vec eps){ 785 798 786 799 int i; … … 796 809 /*}}}*/ 797 810 /*FUNCTION Tria::ComputePressure {{{1*/ 798 void Tria::ComputePressure(Vec pg ,int analysis_type,int sub_analysis_type){811 void Tria::ComputePressure(Vec pg){ 799 812 800 813 int i; … … 826 839 /*}}}*/ 827 840 /*FUNCTION Tria::ComputeStrainRate {{{1*/ 828 void Tria::ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type){841 void Tria::ComputeStrainRate(Vec eps){ 829 842 830 843 int i; … … 840 853 /*}}}*/ 841 854 /*FUNCTION Tria::CostFunction {{{1*/ 842 double Tria::CostFunction( int analysis_type,int sub_analysis_type){855 double Tria::CostFunction(void){ 843 856 844 857 int i; … … 897 910 898 911 /*First, get Misfit*/ 899 Jelem=Misfit( analysis_type,sub_analysis_type);912 Jelem=Misfit(); 900 913 901 914 /* Get gaussian points and weights (make this a statically initialized list of points? fstd): */ … … 941 954 /*}}}*/ 942 955 /*FUNCTION Tria::CreateKMatrix {{{1*/ 943 void Tria::CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type){ 956 void Tria::CreateKMatrix(Mat Kgg){ 957 958 int analysis_type,sub_analysis_type; 959 960 /*retrive parameters: */ 961 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 962 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 944 963 945 964 /*asserts: {{{2*/ … … 949 968 /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */ 950 969 if (analysis_type==ControlAnalysisEnum){ 951 CreateKMatrixDiagnosticHoriz( Kgg ,analysis_type,sub_analysis_type);970 CreateKMatrixDiagnosticHoriz( Kgg); 952 971 } 953 972 else if (analysis_type==DiagnosticAnalysisEnum){ 954 973 if (sub_analysis_type==HorizAnalysisEnum){ 955 CreateKMatrixDiagnosticHoriz( Kgg ,analysis_type,sub_analysis_type);974 CreateKMatrixDiagnosticHoriz( Kgg); 956 975 } 957 976 else if (sub_analysis_type==HutterAnalysisEnum){ 958 CreateKMatrixDiagnosticHutter( Kgg ,analysis_type,sub_analysis_type);977 CreateKMatrixDiagnosticHutter( Kgg); 959 978 } 960 979 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); 961 980 } 962 981 else if (analysis_type==SlopeComputeAnalysisEnum){ 963 CreateKMatrixSlopeCompute( Kgg ,analysis_type,sub_analysis_type);982 CreateKMatrixSlopeCompute( Kgg); 964 983 } 965 984 else if (analysis_type==PrognosticAnalysisEnum){ 966 CreateKMatrixPrognostic( Kgg ,analysis_type,sub_analysis_type);985 CreateKMatrixPrognostic( Kgg); 967 986 } 968 987 else if (analysis_type==Prognostic2AnalysisEnum){ 969 CreateKMatrixPrognostic2(Kgg ,analysis_type,sub_analysis_type);988 CreateKMatrixPrognostic2(Kgg); 970 989 } 971 990 else if (analysis_type==BalancedthicknessAnalysisEnum){ 972 CreateKMatrixBalancedthickness( Kgg ,analysis_type,sub_analysis_type);991 CreateKMatrixBalancedthickness( Kgg); 973 992 } 974 993 else if (analysis_type==Balancedthickness2AnalysisEnum){ 975 CreateKMatrixBalancedthickness2( Kgg ,analysis_type,sub_analysis_type);994 CreateKMatrixBalancedthickness2( Kgg); 976 995 } 977 996 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 978 CreateKMatrixBalancedvelocities( Kgg ,analysis_type,sub_analysis_type);997 CreateKMatrixBalancedvelocities( Kgg); 979 998 } 980 999 else{ … … 985 1004 /*}}}*/ 986 1005 /*FUNCTION Tria::CreateKMatrixBalancedthickness {{{1*/ 987 void Tria::CreateKMatrixBalancedthickness(Mat Kgg ,int analysis_type,int sub_analysis_type){1006 void Tria::CreateKMatrixBalancedthickness(Mat Kgg){ 988 1007 989 1008 /* local declarations */ … … 1141 1160 /*}}}*/ 1142 1161 /*FUNCTION Tria::CreateKMatrixBalancedthickness2 {{{1*/ 1143 void Tria::CreateKMatrixBalancedthickness2(Mat Kgg ,int analysis_type,int sub_analysis_type){1162 void Tria::CreateKMatrixBalancedthickness2(Mat Kgg){ 1144 1163 1145 1164 /* local declarations */ … … 1233 1252 /*}}}*/ 1234 1253 /*FUNCTION Tria::CreateKMatrixBalancedvelocities {{{1*/ 1235 void Tria::CreateKMatrixBalancedvelocities(Mat Kgg ,int analysis_type,int sub_analysis_type){1254 void Tria::CreateKMatrixBalancedvelocities(Mat Kgg){ 1236 1255 1237 1256 /* local declarations */ … … 1401 1420 /*}}}*/ 1402 1421 /*FUNCTION Tria::CreateKMatrixDiagnosticHoriz {{{1*/ 1403 void Tria::CreateKMatrixDiagnosticHoriz(Mat Kgg ,int analysis_type,int sub_analysis_type){1422 void Tria::CreateKMatrixDiagnosticHoriz(Mat Kgg){ 1404 1423 1405 1424 /* local declarations */ … … 1522 1541 /*Do not forget to include friction: */ 1523 1542 if(!shelf){ 1524 CreateKMatrixDiagnosticHorizFriction(Kgg ,analysis_type,sub_analysis_type);1543 CreateKMatrixDiagnosticHorizFriction(Kgg); 1525 1544 } 1526 1545 … … 1534 1553 /*}}}*/ 1535 1554 /*FUNCTION Tria::CreateKMatrixDiagnosticHorizFriction {{{1*/ 1536 void Tria::CreateKMatrixDiagnosticHorizFriction(Mat Kgg ,int analysis_type,int sub_analysis_type){1555 void Tria::CreateKMatrixDiagnosticHorizFriction(Mat Kgg){ 1537 1556 1538 1557 1539 1558 /* local declarations */ 1540 1559 int i,j; 1560 int analysis_type; 1541 1561 1542 1562 /* node data: */ … … 1582 1602 int drag_type; 1583 1603 1604 /*retrive parameters: */ 1605 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1606 1584 1607 /*retrieve inputs :*/ 1585 1608 inputs->GetParameterValue(&shelf,ElementOnIceShelfEnum); … … 1657 1680 /*}}}*/ 1658 1681 /*FUNCTION Tria::CreateKMatrixDiagnosticHutter{{{1*/ 1659 void Tria::CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type){1682 void Tria::CreateKMatrixDiagnosticHutter(Mat Kgg){ 1660 1683 1661 1684 /*Collapsed formulation: */ … … 1675 1698 for(i=0;i<3;i++){ 1676 1699 sing=(Sing*)SpawnSing(i); 1677 sing->CreateKMatrix(Kgg ,analysis_type,sub_analysis_type);1700 sing->CreateKMatrix(Kgg); 1678 1701 } 1679 1702 … … 1684 1707 /*}}}*/ 1685 1708 /*FUNCTION Tria::CreateKMatrixDiagnosticSurfaceVert {{{1*/ 1686 void Tria::CreateKMatrixDiagnosticSurfaceVert(Mat Kgg ,int analysis_type,int sub_analysis_type){1709 void Tria::CreateKMatrixDiagnosticSurfaceVert(Mat Kgg){ 1687 1710 1688 1711 int i,j; … … 1802 1825 /*}}}*/ 1803 1826 /*FUNCTION Tria::CreateKMatrixMelting {{{1*/ 1804 void Tria::CreateKMatrixMelting(Mat Kgg ,int analysis_type,int sub_analysis_type){1827 void Tria::CreateKMatrixMelting(Mat Kgg){ 1805 1828 1806 1829 /*indexing: */ … … 1886 1909 /*}}}*/ 1887 1910 /*FUNCTION Tria::CreateKMatrixPrognostic {{{1*/ 1888 void Tria::CreateKMatrixPrognostic(Mat Kgg ,int analysis_type,int sub_analysis_type){1911 void Tria::CreateKMatrixPrognostic(Mat Kgg){ 1889 1912 1890 1913 /* local declarations */ … … 2056 2079 /*}}}*/ 2057 2080 /*FUNCTION Tria::CreateKMatrixPrognostic2 {{{1*/ 2058 void Tria::CreateKMatrixPrognostic2(Mat Kgg ,int analysis_type,int sub_analysis_type){2081 void Tria::CreateKMatrixPrognostic2(Mat Kgg){ 2059 2082 2060 2083 /* local declarations */ … … 2171 2194 /*FUNCTION Tria::CreateKMatrixSlopeCompute {{{1*/ 2172 2195 2173 void Tria::CreateKMatrixSlopeCompute(Mat Kgg ,int analysis_type,int sub_analysis_type){2196 void Tria::CreateKMatrixSlopeCompute(Mat Kgg){ 2174 2197 2175 2198 /* local declarations */ … … 2248 2271 /*}}}*/ 2249 2272 /*FUNCTION Tria::CreateKMatrixThermal {{{1*/ 2250 void Tria::CreateKMatrixThermal(Mat Kgg ,int analysis_type,int sub_analysis_type){2273 void Tria::CreateKMatrixThermal(Mat Kgg){ 2251 2274 2252 2275 int i,j; … … 2345 2368 /*}}}*/ 2346 2369 /*FUNCTION Tria::CreatePVector {{{1*/ 2347 void Tria::CreatePVector(Vec pg,int analysis_type,int sub_analysis_type){ 2348 2370 void Tria::CreatePVector(Vec pg){ 2371 2372 int analysis_type,sub_analysis_type; 2373 2374 /*retrive parameters: */ 2375 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 2376 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 2377 2378 /*asserts: {{{*/ 2349 2379 /*if debugging mode, check that all pointers exist*/ 2350 2380 ISSMASSERT(this->nodes && this->matice && this->matpar && this->parameters && this->inputs); 2381 /*}}}*/ 2351 2382 2352 2383 /*Just branch to the correct load generator, according to the type of analysis we are carrying out: */ 2353 2384 if (analysis_type==ControlAnalysisEnum){ 2354 CreatePVectorDiagnosticHoriz( pg ,analysis_type,sub_analysis_type);2385 CreatePVectorDiagnosticHoriz( pg); 2355 2386 } 2356 2387 else if (analysis_type==DiagnosticAnalysisEnum){ 2357 2388 if (sub_analysis_type==HorizAnalysisEnum){ 2358 CreatePVectorDiagnosticHoriz( pg ,analysis_type,sub_analysis_type);2389 CreatePVectorDiagnosticHoriz( pg); 2359 2390 } 2360 2391 else if (sub_analysis_type==HutterAnalysisEnum){ 2361 CreatePVectorDiagnosticHutter( pg ,analysis_type,sub_analysis_type);2392 CreatePVectorDiagnosticHutter( pg); 2362 2393 } 2363 2394 else ISSMERROR("%s%i%s\n","sub_analysis: ",sub_analysis_type," not supported yet"); 2364 2395 } 2365 2396 else if (analysis_type==SlopeComputeAnalysisEnum){ 2366 CreatePVectorSlopeCompute( pg ,analysis_type,sub_analysis_type);2397 CreatePVectorSlopeCompute( pg); 2367 2398 } 2368 2399 else if (analysis_type==PrognosticAnalysisEnum){ 2369 CreatePVectorPrognostic( pg ,analysis_type,sub_analysis_type);2400 CreatePVectorPrognostic( pg); 2370 2401 } 2371 2402 else if (analysis_type==Prognostic2AnalysisEnum){ 2372 CreatePVectorPrognostic2( pg ,analysis_type,sub_analysis_type);2403 CreatePVectorPrognostic2( pg); 2373 2404 } 2374 2405 else if (analysis_type==BalancedthicknessAnalysisEnum){ 2375 CreatePVectorBalancedthickness( pg ,analysis_type,sub_analysis_type);2406 CreatePVectorBalancedthickness( pg); 2376 2407 } 2377 2408 else if (analysis_type==Balancedthickness2AnalysisEnum){ 2378 CreatePVectorBalancedthickness2( pg ,analysis_type,sub_analysis_type);2409 CreatePVectorBalancedthickness2( pg); 2379 2410 } 2380 2411 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 2381 CreatePVectorBalancedvelocities( pg ,analysis_type,sub_analysis_type);2412 CreatePVectorBalancedvelocities( pg); 2382 2413 } 2383 2414 else{ … … 2388 2419 /*}}}*/ 2389 2420 /*FUNCTION Tria::CreatePVectorBalancedthickness {{{1*/ 2390 void Tria::CreatePVectorBalancedthickness(Vec pg ,int analysis_type,int sub_analysis_type){2421 void Tria::CreatePVectorBalancedthickness(Vec pg ){ 2391 2422 2392 2423 … … 2462 2493 /*}}}*/ 2463 2494 /*FUNCTION Tria::CreatePVectorBalancedthickness2 {{{1*/ 2464 void Tria::CreatePVectorBalancedthickness2(Vec pg ,int analysis_type,int sub_analysis_type){2495 void Tria::CreatePVectorBalancedthickness2(Vec pg){ 2465 2496 2466 2497 … … 2538 2569 /*}}}*/ 2539 2570 /*FUNCTION Tria::CreatePVectorBalancedvelocities {{{1*/ 2540 void Tria::CreatePVectorBalancedvelocities(Vec pg ,int analysis_type,int sub_analysis_type){2571 void Tria::CreatePVectorBalancedvelocities(Vec pg){ 2541 2572 2542 2573 … … 2612 2643 /*}}}*/ 2613 2644 /*FUNCTION Tria::CreatePVectorDiagnosticBaseVert {{{1*/ 2614 void Tria::CreatePVectorDiagnosticBaseVert(Vec pg ,int analysis_type,int sub_analysis_type){2645 void Tria::CreatePVectorDiagnosticBaseVert(Vec pg){ 2615 2646 2616 2647 int i,j; … … 2710 2741 /*}}}*/ 2711 2742 /*FUNCTION Tria::CreatePVectorDiagnosticHoriz {{{1*/ 2712 void Tria::CreatePVectorDiagnosticHoriz( Vec pg , int analysis_type,int sub_analysis_type){2743 void Tria::CreatePVectorDiagnosticHoriz( Vec pg){ 2713 2744 2714 2745 int i,j; … … 2828 2859 /*}}}*/ 2829 2860 /*FUNCTION Tria::CreatePVectorDiagnosticHutter{{{1*/ 2830 void Tria::CreatePVectorDiagnosticHutter(Vec pg ,int analysis_type,int sub_analysis_type){2861 void Tria::CreatePVectorDiagnosticHutter(Vec pg){ 2831 2862 2832 2863 /*Collapsed formulation: */ … … 2846 2877 for(i=0;i<3;i++){ 2847 2878 sing=(Sing*)SpawnSing(i); 2848 sing->CreatePVector(pg ,analysis_type,sub_analysis_type);2879 sing->CreatePVector(pg); 2849 2880 } 2850 2881 … … 2855 2886 /*}}}*/ 2856 2887 /*FUNCTION Tria::CreatePVectorPrognostic {{{1*/ 2857 void Tria::CreatePVectorPrognostic(Vec pg ,int analysis_type,int sub_analysis_type){2888 void Tria::CreatePVectorPrognostic(Vec pg){ 2858 2889 2859 2890 … … 2937 2968 /*}}}*/ 2938 2969 /*FUNCTION Tria::CreatePVectorPrognostic2 {{{1*/ 2939 void Tria::CreatePVectorPrognostic2(Vec pg ,int analysis_type,int sub_analysis_type){2970 void Tria::CreatePVectorPrognostic2(Vec pg){ 2940 2971 2941 2972 /* local declarations */ … … 3017 3048 /*FUNCTION Tria::CreatePVectorSlopeCompute {{{1*/ 3018 3049 3019 void Tria::CreatePVectorSlopeCompute( Vec pg , int analysis_type,int sub_analysis_type){3050 void Tria::CreatePVectorSlopeCompute( Vec pg){ 3020 3051 3021 3052 int i,j; … … 3048 3079 double pe_g_gaussian[numdof]; 3049 3080 double slope[2]; 3081 int sub_analysis_type; 3082 3083 /*retrive parameters: */ 3084 parameters->FindParam(&sub_analysis_type,AnalysisTypeEnum); 3050 3085 3051 3086 /* Get node coordinates and dof list: */ … … 3104 3139 /*}}}*/ 3105 3140 /*FUNCTION Tria::CreatePVectorThermalShelf {{{1*/ 3106 void Tria::CreatePVectorThermalShelf( Vec pg , int analysis_type,int sub_analysis_type){3141 void Tria::CreatePVectorThermalShelf( Vec pg){ 3107 3142 3108 3143 int i,found; … … 3205 3240 /*}}}*/ 3206 3241 /*FUNCTION Tria::CreatePVectorThermalSheet {{{1*/ 3207 void Tria::CreatePVectorThermalSheet( Vec pg , int analysis_type,int sub_analysis_type){3242 void Tria::CreatePVectorThermalSheet( Vec pg){ 3208 3243 3209 3244 int i,found; … … 3243 3278 double l1l2l3[numgrids]; 3244 3279 double scalar; 3280 3281 int analysis_type; 3282 3283 /*retrive parameters: */ 3284 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 3245 3285 3246 3286 … … 3309 3349 /*}}}*/ 3310 3350 /*FUNCTION Tria::Du {{{1*/ 3311 void Tria::Du(Vec du_g ,int analysis_type,int sub_analysis_type){3351 void Tria::Du(Vec du_g){ 3312 3352 3313 3353 int i; … … 4085 4125 /*}}}*/ 4086 4126 /*FUNCTION Tria::Gradj {{{1*/ 4087 void Tria::Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,intcontrol_type){4127 void Tria::Gradj(Vec grad_g,int control_type){ 4088 4128 4089 4129 /*inputs: */ … … 4097 4137 4098 4138 if (control_type==DragCoefficientEnum){ 4099 GradjDrag( grad_g ,analysis_type,sub_analysis_type);4139 GradjDrag( grad_g); 4100 4140 } 4101 4141 else if (control_type==RheologyBEnum){ 4102 GradjB( grad_g ,analysis_type,sub_analysis_type);4142 GradjB( grad_g); 4103 4143 } 4104 4144 else ISSMERROR("%s%i","control type not supported yet: ",control_type); … … 4106 4146 /*}}}*/ 4107 4147 /*FUNCTION Tria::GradjB{{{1*/ 4108 void Tria::GradjB(Vec grad_g ,int analysis_type,int sub_analysis_type){4148 void Tria::GradjB(Vec grad_g){ 4109 4149 4110 4150 int i; … … 4252 4292 /*}}}*/ 4253 4293 /*FUNCTION Tria::GradjDrag {{{1*/ 4254 void Tria::GradjDrag(Vec grad_g ,int analysis_type,int sub_analysis_type){4294 void Tria::GradjDrag(Vec grad_g){ 4255 4295 4256 4296 … … 4311 4351 double cm_maxdmp_slope; 4312 4352 4353 int analysis_type; 4354 4355 /*retrive parameters: */ 4356 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 4357 4313 4358 /*retrieve inputs :*/ 4314 4359 inputs->GetParameterValue(&shelf,ElementOnIceShelfEnum); … … 4408 4453 /*}}}*/ 4409 4454 /*FUNCTION Tria::GradjDragStokes {{{1*/ 4410 void Tria::GradjDragStokes(Vec grad_g ,int analysis_type,int sub_analysis_type){4455 void Tria::GradjDragStokes(Vec grad_g){ 4411 4456 4412 4457 int i; … … 4466 4511 double cm_maxdmp_slope; 4467 4512 4513 int analysis_type; 4514 4515 /*retrive parameters: */ 4516 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 4517 4468 4518 /*retrieve inputs :*/ 4469 4519 inputs->GetParameterValue(&shelf,ElementOnIceShelfEnum); … … 4573 4623 /*}}}*/ 4574 4624 /*FUNCTION Tria::MassFlux {{{1*/ 4575 double Tria::MassFlux( double* segment ,double* ug){4625 double Tria::MassFlux( double* segment){ 4576 4626 4577 4627 int i; … … 4581 4631 int numberofdofspernode; 4582 4632 double mass_flux=0; 4583 int doflist[numgrids*numdofs];4584 double vx_list[3];4585 double vy_list[3];4586 4633 double xyz_list[numgrids][3]; 4587 4634 double gauss_1[3]; … … 4606 4653 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); 4607 4654 4608 /*recover velocity at three element nodes: */4609 this->GetDofList(&doflist[0],&numberofdofspernode);4610 for(i=0;i<3;i++){4611 vx_list[i]=ug[doflist[numberofdofspernode*i+0]];4612 vy_list[i]=ug[doflist[numberofdofspernode*i+1]];4613 }4614 4615 4655 /*get area coordinates of 0 and 1 locations: */ 4616 4656 for(i=0;i<3;i++){ … … 4642 4682 /*}}}*/ 4643 4683 /*FUNCTION Tria::Misfit {{{1*/ 4644 double Tria::Misfit( int analysis_type,int sub_analysis_type){4684 double Tria::Misfit(void){ 4645 4685 4646 4686 int i; … … 4873 4913 /*}}}*/ 4874 4914 /*FUNCTION Tria::SurfaceArea {{{1*/ 4875 double Tria::SurfaceArea( int analysis_type,int sub_analysis_type){4915 double Tria::SurfaceArea(void){ 4876 4916 4877 4917 int i; … … 5063 5103 void Tria::MinVel(double* pminvel, bool process_units){ 5064 5104 5105 int i; 5106 int dim; 5065 5107 const int numgrids=3; 5066 5108 double gaussgrids[numgrids][3]={{1,0,0},{0,1,0},{0,0,1}}; … … 5081 5123 /*now, compute minimum of velocity :*/ 5082 5124 if(dim==2){ 5083 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2));5125 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)); 5084 5126 } 5085 5127 else{ 5086 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2));5128 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2)); 5087 5129 } 5088 5130 … … 5101 5143 void Tria::MaxVel(double* pmaxvel, bool process_units){ 5102 5144 5145 int i; 5146 int dim; 5103 5147 const int numgrids=3; 5104 5148 double gaussgrids[numgrids][3]={{1,0,0},{0,1,0},{0,0,1}}; … … 5119 5163 /*now, compute maximum of velocity :*/ 5120 5164 if(dim==2){ 5121 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2));5165 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)); 5122 5166 } 5123 5167 else{ 5124 for(i=0;i<numgrids;i++)vel_values =sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2));5168 for(i=0;i<numgrids;i++)vel_values[i]=sqrt(pow(vx_values[i],2)+pow(vy_values[i],2)+pow(vz_values[i],2)); 5125 5169 } 5126 5170 … … 5136 5180 } 5137 5181 /*}}}*/ 5182 /*FUNCTION Tria::MinVx(double* pminvx, bool process_units);{{{1*/ 5183 void Tria::MinVx(double* pminvx, bool process_units){ 5184 5185 int i; 5186 int dim; 5187 const int numgrids=3; 5188 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5189 double vx_values[numgrids]; 5190 double minvx; 5191 5192 /*retrieve dim parameter: */ 5193 parameters->FindParam(&dim,DimEnum); 5194 5195 /*retrive velocity values at nodes */ 5196 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 5197 5198 /*now, compute minimum:*/ 5199 minvx=vx_values[0]; 5200 for(i=1;i<numgrids;i++){ 5201 if (vx_values[i]<minvx)minvx=vx_values[i]; 5202 } 5203 5204 /*Assign output pointers:*/ 5205 *pminvx=minvx; 5206 5207 } 5208 /*}}}*/ 5209 /*FUNCTION Tria::MaxVx(double* pmaxvx, bool process_units);{{{1*/ 5210 void Tria::MaxVx(double* pmaxvx, bool process_units){ 5211 5212 int i; 5213 int dim; 5214 const int numgrids=3; 5215 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5216 double vx_values[numgrids]; 5217 double maxvx; 5218 5219 /*retrieve dim parameter: */ 5220 parameters->FindParam(&dim,DimEnum); 5221 5222 /*retrive velocity values at nodes */ 5223 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 5224 5225 /*now, compute maximum:*/ 5226 maxvx=vx_values[0]; 5227 for(i=1;i<numgrids;i++){ 5228 if (vx_values[i]>maxvx)maxvx=vx_values[i]; 5229 } 5230 5231 /*Assign output pointers:*/ 5232 *pmaxvx=maxvx; 5233 5234 } 5235 /*}}}*/ 5236 /*FUNCTION Tria::MaxAbsVx(double* pmaxabsvx, bool process_units);{{{1*/ 5237 void Tria::MaxAbsVx(double* pmaxabsvx, bool process_units){ 5238 5239 int i; 5240 int dim; 5241 const int numgrids=3; 5242 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5243 double vx_values[numgrids]; 5244 double maxabsvx; 5245 5246 /*retrieve dim parameter: */ 5247 parameters->FindParam(&dim,DimEnum); 5248 5249 /*retrive velocity values at nodes */ 5250 inputs->GetParameterValues(&vx_values[0],&gaussgrids[0][0],numgrids,VxEnum); 5251 5252 /*now, compute maximum:*/ 5253 maxabsvx=fabs(vx_values[0]); 5254 for(i=1;i<numgrids;i++){ 5255 if (fabs(vx_values[i])>maxabsvx)maxabsvx=fabs(vx_values[i]); 5256 } 5257 5258 /*Assign output pointers:*/ 5259 *pmaxabsvx=maxabsvx; 5260 } 5261 /*}}}*/ 5262 /*FUNCTION Tria::MinVy(double* pminvy, bool process_units);{{{1*/ 5263 void Tria::MinVy(double* pminvy, bool process_units){ 5264 5265 int i; 5266 int dim; 5267 const int numgrids=3; 5268 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5269 double vy_values[numgrids]; 5270 double minvy; 5271 5272 /*retrieve dim parameter: */ 5273 parameters->FindParam(&dim,DimEnum); 5274 5275 /*retrive velocity values at nodes */ 5276 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 5277 5278 /*now, compute minimum:*/ 5279 minvy=vy_values[0]; 5280 for(i=1;i<numgrids;i++){ 5281 if (vy_values[i]<minvy)minvy=vy_values[i]; 5282 } 5283 5284 /*Assign output pointers:*/ 5285 *pminvy=minvy; 5286 5287 } 5288 /*}}}*/ 5289 /*FUNCTION Tria::MaxVy(double* pmaxvy, bool process_units);{{{1*/ 5290 void Tria::MaxVy(double* pmaxvy, bool process_units){ 5291 5292 int i; 5293 int dim; 5294 const int numgrids=3; 5295 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5296 double vy_values[numgrids]; 5297 double maxvy; 5298 5299 /*retrieve dim parameter: */ 5300 parameters->FindParam(&dim,DimEnum); 5301 5302 /*retrive velocity values at nodes */ 5303 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 5304 5305 /*now, compute maximum:*/ 5306 maxvy=vy_values[0]; 5307 for(i=1;i<numgrids;i++){ 5308 if (vy_values[i]>maxvy)maxvy=vy_values[i]; 5309 } 5310 5311 /*Assign output pointers:*/ 5312 *pmaxvy=maxvy; 5313 5314 } 5315 /*}}}*/ 5316 /*FUNCTION Tria::MaxAbsVy(double* pmaxabsvy, bool process_units);{{{1*/ 5317 void Tria::MaxAbsVy(double* pmaxabsvy, bool process_units){ 5318 5319 int i; 5320 int dim; 5321 const int numgrids=3; 5322 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5323 double vy_values[numgrids]; 5324 double maxabsvy; 5325 5326 /*retrieve dim parameter: */ 5327 parameters->FindParam(&dim,DimEnum); 5328 5329 /*retrive velocity values at nodes */ 5330 inputs->GetParameterValues(&vy_values[0],&gaussgrids[0][0],numgrids,VyEnum); 5331 5332 /*now, compute maximum:*/ 5333 maxabsvy=fabs(vy_values[0]); 5334 for(i=1;i<numgrids;i++){ 5335 if (fabs(vy_values[i])>maxabsvy)maxabsvy=fabs(vy_values[i]); 5336 } 5337 5338 /*Assign output pointers:*/ 5339 *pmaxabsvy=maxabsvy; 5340 } 5341 /*}}}*/ 5342 /*FUNCTION Tria::MinVz(double* pminvz, bool process_units);{{{1*/ 5343 void Tria::MinVz(double* pminvz, bool process_units){ 5344 5345 int i; 5346 int dim; 5347 const int numgrids=3; 5348 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5349 double vz_values[numgrids]; 5350 double minvz; 5351 5352 /*retrieve dim parameter: */ 5353 parameters->FindParam(&dim,DimEnum); 5354 5355 /*retrive velocity values at nodes */ 5356 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 5357 5358 /*now, compute minimum:*/ 5359 minvz=vz_values[0]; 5360 for(i=1;i<numgrids;i++){ 5361 if (vz_values[i]<minvz)minvz=vz_values[i]; 5362 } 5363 5364 /*Assign output pointers:*/ 5365 *pminvz=minvz; 5366 5367 } 5368 /*}}}*/ 5369 /*FUNCTION Tria::MaxVz(double* pmaxvz, bool process_units);{{{1*/ 5370 void Tria::MaxVz(double* pmaxvz, bool process_units){ 5371 5372 int i; 5373 int dim; 5374 const int numgrids=3; 5375 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5376 double vz_values[numgrids]; 5377 double maxvz; 5378 5379 /*retrieve dim parameter: */ 5380 parameters->FindParam(&dim,DimEnum); 5381 5382 /*retrive velocity values at nodes */ 5383 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 5384 5385 /*now, compute maximum:*/ 5386 maxvz=vz_values[0]; 5387 for(i=1;i<numgrids;i++){ 5388 if (vz_values[i]>maxvz)maxvz=vz_values[i]; 5389 } 5390 5391 /*Assign output pointers:*/ 5392 *pmaxvz=maxvz; 5393 5394 } 5395 /*}}}*/ 5396 /*FUNCTION Tria::MaxAbsVz(double* pmaxabsvz, bool process_units);{{{1*/ 5397 void Tria::MaxAbsVz(double* pmaxabsvz, bool process_units){ 5398 5399 int i; 5400 int dim; 5401 const int numgrids=3; 5402 double gaussgrids[numgrids][numgrids]={{1,0,0},{0,1,0},{0,0,1}}; 5403 double vz_values[numgrids]; 5404 double maxabsvz; 5405 5406 /*retrieve dim parameter: */ 5407 parameters->FindParam(&dim,DimEnum); 5408 5409 /*retrive velocity values at nodes */ 5410 inputs->GetParameterValues(&vz_values[0],&gaussgrids[0][0],numgrids,VzEnum); 5411 5412 /*now, compute maximum:*/ 5413 maxabsvz=fabs(vz_values[0]); 5414 for(i=1;i<numgrids;i++){ 5415 if (fabs(vz_values[i])>maxabsvz)maxabsvz=fabs(vz_values[i]); 5416 } 5417 5418 /*Assign output pointers:*/ 5419 *pmaxabsvz=maxabsvz; 5420 } 5421 /*}}}*/ 5422 /*FUNCTION Tria::ReinitializeInput(int reinitialized_enum,int original_enum){{{1*/ 5423 void Tria::ReinitializeInput(int reinitialized_enum,int original_enum){ 5424 5425 Input* original=NULL; 5426 Input* copy=NULL; 5427 5428 /*Make a copy of the original input: */ 5429 original=(Input*)this->inputs->GetInput(original_enum); 5430 copy=(Input*)original->copy(); 5431 5432 /*Change copy enum to reinitialized_enum: */ 5433 copy->ChangeEnum(reinitialized_enum); 5434 5435 /*Add copy into inputs, it will wipe off the one already there: */ 5436 inputs->AddObject((Input*)copy); 5437 } 5438 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Elements/Tria.h ¶
r4042 r4043 45 45 void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* materials,Parameters* parameters); 46 46 Object* copy(); 47 void DeepEcho( );47 void DeepEcho(void); 48 48 void Demarshall(char** pmarshalled_dataset); 49 void Echo( );50 int Enum( );51 int Id( );49 void Echo(void); 50 int Enum(void); 51 int Id(void); 52 52 bool IsInput(int name); 53 53 void Marshall(char** pmarshalled_dataset); 54 int MarshallSize( );55 int MyRank( );54 int MarshallSize(void); 55 int MyRank(void); 56 56 void SetClone(int* minranks); 57 57 void DepthAverageInputAtBase(int enum_type); … … 62 62 /*}}}*/ 63 63 /*FUNCTION element numerical routines {{{1*/ 64 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);65 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);66 void GetSolutionFromInputs(Vec solution , int analysis_type,int sub_analysis_type);67 void GetSolutionFromInputsDiagnosticHoriz(Vec solution ,int analysis_type,int sub_analysis_type);64 void CreateKMatrix(Mat Kgg); 65 void CreatePVector(Vec pg); 66 void GetSolutionFromInputs(Vec solution); 67 void GetSolutionFromInputsDiagnosticHoriz(Vec solution); 68 68 void GetDofList(int* doflist,int* pnumberofdofs); 69 69 void GetDofList1(int* doflist); 70 void CreateKMatrixDiagnosticHutter(Mat Kgg ,int analysis_type,int sub_analysis_type);71 void CreateKMatrixDiagnosticHoriz(Mat Kgg ,int analysis_type,int sub_analysis_type);72 void CreateKMatrixDiagnosticHorizFriction(Mat Kgg ,int analysis_type,int sub_analysis_type);73 void CreateKMatrixDiagnosticSurfaceVert(Mat Kgg ,int analysis_type,int sub_analysis_type);74 void CreateKMatrixSlopeCompute(Mat Kgg ,int analysis_type,int sub_analysis_type);70 void CreateKMatrixDiagnosticHutter(Mat Kgg); 71 void CreateKMatrixDiagnosticHoriz(Mat Kgg); 72 void CreateKMatrixDiagnosticHorizFriction(Mat Kgg); 73 void CreateKMatrixDiagnosticSurfaceVert(Mat Kgg); 74 void CreateKMatrixSlopeCompute(Mat Kgg); 75 75 void GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3); 76 76 void GetParameterDerivativeValue(double* p, double* plist,double* xyz_list, double* gauss_l1l2l3); … … 87 87 void GetJacobianInvert(double* Jinv, double* xyz_list,double* gauss_l1l2l3); 88 88 void GetJacobian(double* J, double* xyz_list,double* gauss_l1l2l3); 89 void Du(Vec du_g ,int analysis_type,int sub_analysis_type);90 void Gradj(Vec grad_g,int analysis_type,int sub_analysis_type,intcontrol_type);91 void GradjDrag(Vec grad_g ,int analysis_type,int sub_analysis_type);92 void GradjDragStokes(Vec grad_g ,int analysis_type,int sub_analysis_type);89 void Du(Vec du_g); 90 void Gradj(Vec grad_g,int control_type); 91 void GradjDrag(Vec grad_g); 92 void GradjDragStokes(Vec grad_g); 93 93 void SurfaceNormal(double* surface_normal, double xyz_list[3][3]); 94 void GradjB(Vec grad_g ,int analysis_type,int sub_analysis_type);95 double Misfit( int analysis_type,int sub_analysis_type);96 double SurfaceArea( int analysis_type,int sub_analysis_type);97 double CostFunction( int analysis_type,int sub_analysis_type);98 void CreatePVectorDiagnosticHutter(Vec pg ,int analysis_type,int sub_analysis_type);99 void CreatePVectorDiagnosticHoriz(Vec pg ,int analysis_type,int sub_analysis_type);100 void CreatePVectorDiagnosticBaseVert(Vec pg ,int analysis_type,int sub_analysis_type);101 void CreatePVectorSlopeCompute( Vec pg , int analysis_type,int sub_analysis_type);102 void* GetMatPar( );103 bool GetShelf( );94 void GradjB(Vec grad_g); 95 double Misfit(void); 96 double SurfaceArea(void); 97 double CostFunction(void); 98 void CreatePVectorDiagnosticHutter(Vec pg); 99 void CreatePVectorDiagnosticHoriz(Vec pg); 100 void CreatePVectorDiagnosticBaseVert(Vec pg); 101 void CreatePVectorSlopeCompute( Vec pg); 102 void* GetMatPar(void); 103 bool GetShelf(void); 104 104 void GetNodes(void** nodes); 105 bool GetOnBed( );105 bool GetOnBed(void); 106 106 void GetThicknessList(double* thickness_list); 107 107 void GetBedList(double* bed_list); 108 void ComputeBasalStress(Vec sigma_b ,int analysis_type,int sub_analysis_type);109 void ComputePressure(Vec p_g ,int analysis_type,int sub_analysis_type);110 void ComputeStrainRate(Vec eps ,int analysis_type,int sub_analysis_type);111 void CreateKMatrixThermal(Mat Kgg ,int analysis_type,int sub_analysis_type);112 void CreateKMatrixMelting(Mat Kgg ,int analysis_type,int sub_analysis_type);113 void CreatePVectorThermalShelf( Vec pg , int analysis_type,int sub_analysis_type);114 void CreatePVectorThermalSheet( Vec pg , int analysis_type,int sub_analysis_type);115 void CreateKMatrixPrognostic(Mat Kgg ,int analysis_type,int sub_analysis_type);116 void CreatePVectorPrognostic(Vec pg ,int analysis_type,int sub_analysis_type);117 void CreateKMatrixPrognostic2(Mat Kgg ,int analysis_type,int sub_analysis_type);118 void CreatePVectorPrognostic2(Vec pg ,int analysis_type,int sub_analysis_type);119 void CreateKMatrixBalancedthickness(Mat Kgg ,int analysis_type,int sub_analysis_type);120 void CreatePVectorBalancedthickness(Vec pg ,int analysis_type,int sub_analysis_type);121 void CreateKMatrixBalancedthickness2(Mat Kgg ,int analysis_type,int sub_analysis_type);122 void CreatePVectorBalancedthickness2(Vec pg ,int analysis_type,int sub_analysis_type);123 void CreateKMatrixBalancedvelocities(Mat Kgg ,int analysis_type,int sub_analysis_type);124 void CreatePVectorBalancedvelocities(Vec pg ,int analysis_type,int sub_analysis_type);125 double MassFlux(double* segment ,double* ug);108 void ComputeBasalStress(Vec sigma_b); 109 void ComputePressure(Vec p_g); 110 void ComputeStrainRate(Vec eps); 111 void CreateKMatrixThermal(Mat Kgg); 112 void CreateKMatrixMelting(Mat Kgg); 113 void CreatePVectorThermalShelf( Vec pg); 114 void CreatePVectorThermalSheet( Vec pg); 115 void CreateKMatrixPrognostic(Mat Kgg); 116 void CreatePVectorPrognostic(Vec pg); 117 void CreateKMatrixPrognostic2(Mat Kgg); 118 void CreatePVectorPrognostic2(Vec pg); 119 void CreateKMatrixBalancedthickness(Mat Kgg); 120 void CreatePVectorBalancedthickness(Vec pg); 121 void CreateKMatrixBalancedthickness2(Mat Kgg); 122 void CreatePVectorBalancedthickness2(Vec pg); 123 void CreateKMatrixBalancedvelocities(Mat Kgg); 124 void CreatePVectorBalancedvelocities(Vec pg); 125 double MassFlux(double* segment); 126 126 double GetArea(void); 127 127 double GetAreaCoordinate(double x, double y, int which_one); … … 130 130 void MinVel(double* pminvel, bool process_units); 131 131 void MaxVel(double* pmaxvel, bool process_units); 132 void MinVx(double* pminvx, bool process_units); 133 void MaxVx(double* pmaxvx, bool process_units); 134 void MaxAbsVx(double* pmaxabsvx, bool process_units); 135 void MinVy(double* pminvy, bool process_units); 136 void MaxVy(double* pmaxvy, bool process_units); 137 void MaxAbsVy(double* pmaxabsvy, bool process_units); 138 void MinVz(double* pminvz, bool process_units); 139 void MaxVz(double* pmaxvz, bool process_units); 140 void MaxAbsVz(double* pmaxabsvz, bool process_units); 141 void ReinitializeInput(int reinitialized_enum,int original_enum); 142 132 143 133 144 /*}}}*/ 134 145 /*FUNCTION updates{{{1*/ 135 146 void UpdateFromDakota(void* inputs); 136 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);137 void UpdateInputsFromSolutionDiagnosticHoriz( double* solution ,int analysis_type,int sub_analysis_type);138 void UpdateInputsFromSolutionSlopeCompute( double* solution ,int analysis_type,int sub_analysis_type);139 void UpdateInputsFromSolutionPrognostic( double* solution ,int analysis_type,int sub_analysis_type);140 void UpdateInputsFromSolutionPrognostic2(double* solution ,int analysis_type,int sub_analysis_type);141 void UpdateInputsFromSolutionBalancedthickness( double* solution ,int analysis_type,int sub_analysis_type);142 void UpdateInputsFromSolutionBalancedthickness2( double* solution ,int analysis_type,int sub_analysis_type);143 void UpdateInputsFromSolutionBalancedvelocities( double* solution ,int analysis_type,int sub_analysis_type);147 void UpdateInputsFromSolution(double* solutiong); 148 void UpdateInputsFromSolutionDiagnosticHoriz( double* solution); 149 void UpdateInputsFromSolutionSlopeCompute( double* solution); 150 void UpdateInputsFromSolutionPrognostic( double* solution); 151 void UpdateInputsFromSolutionPrognostic2(double* solution); 152 void UpdateInputsFromSolutionBalancedthickness( double* solution); 153 void UpdateInputsFromSolutionBalancedthickness2( double* solution); 154 void UpdateInputsFromSolutionBalancedvelocities( double* solution); 144 155 void UpdateInputsFromVector(double* vector, int name, int type); 145 156 void UpdateInputsFromVector(int* vector, int name, int type); -
TabularUnified issm/trunk/src/c/objects/Inputs/BeamVertexInput.cpp ¶
r4042 r4043 239 239 240 240 /*Process units if requested: */ 241 if(process )NodalValuesUnitConversion(&valuescopy[0],numnodes,enum_type,parameters);241 if(process_units)NodalValuesUnitConversion(&valuescopy[0],numnodes,enum_type,parameters); 242 242 243 243 /*Now, figure out minimum of valuescopy: */ -
TabularUnified issm/trunk/src/c/objects/Inputs/BeamVertexInput.h ¶
r4042 r4043 43 43 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 44 44 45 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}45 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 46 46 47 47 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Inputs/BoolInput.h ¶
r4042 r4043 43 43 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 44 44 45 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}45 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 46 46 47 47 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Inputs/DoubleInput.h ¶
r4042 r4043 44 44 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 45 45 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 46 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}46 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 47 47 48 48 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Inputs/IntInput.h ¶
r4042 r4043 43 43 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 44 44 45 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}45 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 46 46 47 47 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp ¶
r4042 r4043 888 888 889 889 /*Process units if requested: */ 890 if(process )NodalValuesUnitConversion(&valuescopy[0],numnodes,enum_type,parameters);890 if(process_units)NodalValuesUnitConversion(&valuescopy[0],numnodes,enum_type,parameters); 891 891 892 892 /*Now, figure out minimum of valuescopy: */ -
TabularUnified issm/trunk/src/c/objects/Inputs/PentaVertexInput.h ¶
r4042 r4043 42 42 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 43 43 44 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}44 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 45 45 46 46 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Inputs/SingVertexInput.cpp ¶
r4042 r4043 215 215 216 216 /*Process units if requested: */ 217 if(process )NodalValuesUnitConversion(&valuecopy,1,enum_type,parameters);217 if(process_units)NodalValuesUnitConversion(&valuecopy,1,enum_type,parameters); 218 218 219 219 /*Now, return square of value, because it is the minimum: */ -
TabularUnified issm/trunk/src/c/objects/Inputs/SingVertexInput.h ¶
r4042 r4043 42 42 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 43 43 44 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}44 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 45 45 46 46 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Inputs/TriaVertexInput.cpp ¶
r4042 r4043 462 462 463 463 /*Process units if requested: */ 464 if(process )NodalValuesUnitConversion(&valuescopy[0],numnodes,enum_type,parameters);464 if(process_units)NodalValuesUnitConversion(&valuescopy[0],numnodes,enum_type,parameters); 465 465 466 466 /*Now, figure out minimum of valuescopy: */ -
TabularUnified issm/trunk/src/c/objects/Inputs/TriaVertexInput.h ¶
r4042 r4043 42 42 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 43 43 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 44 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}44 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 45 45 46 46 Input* SpawnSingInput(int index); -
TabularUnified issm/trunk/src/c/objects/Loads/Icefront.cpp ¶
r4021 r4043 278 278 /*FUNCTION Icefront::CreateKMatrix {{{1*/ 279 279 280 void Icefront::CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type){280 void Icefront::CreateKMatrix(Mat Kgg){ 281 281 282 282 /*No stiffness loads applied, do nothing: */ … … 287 287 /*}}}*/ 288 288 /*FUNCTION Icefront::CreatePVector {{{1*/ 289 void Icefront::CreatePVector(Vec pg, int analysis_type,int sub_analysis_type){ 289 void Icefront::CreatePVector(Vec pg){ 290 291 int analysis_type,sub_analysis_type; 292 293 /*Retrieve parameters: */ 294 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 295 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 290 296 291 297 /*Just branch to the correct element icefront vector generator, according to the type of analysis we are carrying out: */ 292 298 if (analysis_type==ControlAnalysisEnum){ 293 299 294 CreatePVectorDiagnosticHoriz( pg ,analysis_type,sub_analysis_type);300 CreatePVectorDiagnosticHoriz( pg); 295 301 296 302 } … … 299 305 if (sub_analysis_type==HorizAnalysisEnum){ 300 306 301 CreatePVectorDiagnosticHoriz( pg ,analysis_type,sub_analysis_type);307 CreatePVectorDiagnosticHoriz( pg); 302 308 303 309 } 304 310 else if (sub_analysis_type==StokesAnalysisEnum){ 305 311 306 CreatePVectorDiagnosticStokes( pg ,analysis_type,sub_analysis_type);312 CreatePVectorDiagnosticStokes( pg); 307 313 308 314 } … … 316 322 /*}}}*/ 317 323 /*FUNCTION Icefront::CreatePVectorDiagnosticHoriz {{{1*/ 318 void Icefront::CreatePVectorDiagnosticHoriz( Vec pg , int analysis_type,int sub_analysis_type){324 void Icefront::CreatePVectorDiagnosticHoriz( Vec pg){ 319 325 320 326 int type; … … 323 329 /*Branck on the type of icefront: */ 324 330 if (type==SegmentIcefrontEnum){ 325 CreatePVectorDiagnosticHorizSegment(pg ,analysis_type,sub_analysis_type);331 CreatePVectorDiagnosticHorizSegment(pg); 326 332 } 327 333 else if (type==QuadIceFrontEnum){ 328 CreatePVectorDiagnosticHorizQuad(pg ,analysis_type,sub_analysis_type);334 CreatePVectorDiagnosticHorizQuad(pg); 329 335 } 330 336 else ISSMERROR("type %i not supported",type); … … 332 338 /*}}}*/ 333 339 /*FUNCTION Icefront::CreatePVectorDiagnosticHorizSegment{{{1*/ 334 void Icefront::CreatePVectorDiagnosticHorizSegment( Vec pg ,int analysis_type,int sub_analysis_type){340 void Icefront::CreatePVectorDiagnosticHorizSegment( Vec pg){ 335 341 336 342 int i,j; … … 425 431 /*}}}*/ 426 432 /*FUNCTION Icefront::CreatePVectorDiagnosticHorizQuad {{{1*/ 427 void Icefront::CreatePVectorDiagnosticHorizQuad( Vec pg ,int analysis_type,int sub_analysis_type){433 void Icefront::CreatePVectorDiagnosticHorizQuad( Vec pg){ 428 434 429 435 int i,j; … … 563 569 /*}}}*/ 564 570 /*FUNCTION Icefront::CreatePVectorDiagnosticStokes {{{1*/ 565 void Icefront::CreatePVectorDiagnosticStokes( Vec pg ,int analysis_type,int sub_analysis_type){571 void Icefront::CreatePVectorDiagnosticStokes( Vec pg){ 566 572 567 573 int i,j; … … 699 705 } 700 706 /*}}}*/ 701 /*FUNCTION Icefront::DistributeNumDofs {{{1*/702 void Icefront::DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type){return;}703 704 /*}}}*/705 707 /*FUNCTION Icefront::GetDofList{{{1*/ 706 708 … … 740 742 /*}}}*/ 741 743 /*FUNCTION Icefront::PenaltyCreateKMatrix {{{1*/ 742 void Icefront::PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){744 void Icefront::PenaltyCreateKMatrix(Mat Kgg,double kmax){ 743 745 /*do nothing: */ 744 746 } 745 747 /*}}}*/ 746 748 /*FUNCTION Icefront::PenaltyCreatePVector{{{1*/ 747 void Icefront::PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type){749 void Icefront::PenaltyCreatePVector(Vec pg,double kmax){ 748 750 /*do nothing: */ 749 751 } … … 1374 1376 } 1375 1377 /*}}}*/ 1376 /*FUNCTION Icefront::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type) {{{1*/1377 void Icefront::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){1378 /*FUNCTION Icefront::UpdateInputsFromSolution(double* solution) {{{1*/ 1379 void Icefront::UpdateInputsFromSolution(double* solution){ 1378 1380 /*Nothing updated yet*/ 1379 1381 } -
TabularUnified issm/trunk/src/c/objects/Loads/Icefront.h ¶
r4007 r4043 55 55 void UpdateInputsFromConstant(int constant, int name); 56 56 void UpdateInputsFromConstant(bool constant, int name); 57 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);57 void UpdateInputsFromSolution(double* solution); 58 58 bool InAnalysis(int analysis_type); 59 59 /*}}}*/ 60 60 /*numerics: {{{1*/ 61 void DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type); 62 void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type); 63 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type); 64 void CreatePVectorDiagnosticHoriz( Vec pg, int analysis_type,int sub_analysis_type); 65 void CreatePVectorDiagnosticHorizSegment( Vec pg, int analysis_type,int sub_analysis_type); 66 void CreatePVectorDiagnosticHorizQuad( Vec pg, int analysis_type,int sub_analysis_type); 67 void CreatePVectorDiagnosticStokes( Vec pg, int analysis_type,int sub_analysis_type); 61 void CreateKMatrix(Mat Kgg); 62 void CreatePVector(Vec pg); 63 void CreatePVectorDiagnosticHoriz( Vec pg); 64 void CreatePVectorDiagnosticHorizSegment( Vec pg); 65 void CreatePVectorDiagnosticHorizQuad( Vec pg); 66 void CreatePVectorDiagnosticStokes( Vec pg); 68 67 void GetDofList(int* doflist,int* pnumberofdofs); 69 68 void SegmentPressureLoad(double* pe_g,double rho_water,double rho_ice,double gravity, double* thickness_list, double* bed_list, double* normal,double length); … … 72 71 void QuadPressureLoadStokes(double* pe_g,double rho_water,double rho_ice,double gravity, double* thickness_list, double* bed_list, 73 72 double* normal1,double* normal2,double* normal3,double* normal4,double* xyz_list); 74 void PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type);75 void PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type);73 void PenaltyCreateKMatrix(Mat Kgg,double kmax); 74 void PenaltyCreatePVector(Vec pg,double kmax); 76 75 /*}}}*/ 77 76 }; -
TabularUnified issm/trunk/src/c/objects/Loads/Load.h ¶
r4004 r4043 30 30 virtual void Demarshall(char** pmarshalled_dataset)=0; 31 31 virtual void Configure(DataSet* elements,DataSet* loads,DataSet* nodes,DataSet* vertices,DataSet* materials,Parameters* parameters)=0; 32 virtual void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type)=0;33 virtual void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type)=0;34 virtual void PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type)=0;35 virtual void PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type)=0;32 virtual void CreateKMatrix(Mat Kgg)=0; 33 virtual void CreatePVector(Vec pg)=0; 34 virtual void PenaltyCreateKMatrix(Mat Kgg,double kmax)=0; 35 virtual void PenaltyCreatePVector(Vec pg,double kmax)=0; 36 36 virtual bool InAnalysis(int analysis_type); 37 37 }; -
TabularUnified issm/trunk/src/c/objects/Loads/Numericalflux.cpp ¶
r4021 r4043 283 283 /*Object functions*/ 284 284 /*FUNCTION Numericalflux::CreateKMatrix {{{1*/ 285 void Numericalflux::CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type){285 void Numericalflux::CreateKMatrix(Mat Kgg){ 286 286 287 287 int type; … … 292 292 if (type==InternalEnum){ 293 293 294 CreateKMatrixInternal(Kgg ,analysis_type,sub_analysis_type);294 CreateKMatrixInternal(Kgg); 295 295 } 296 296 else if (type==BoundaryEnum){ 297 297 298 CreateKMatrixBoundary(Kgg ,analysis_type,sub_analysis_type);298 CreateKMatrixBoundary(Kgg); 299 299 } 300 300 else ISSMERROR("type not supported yet"); … … 303 303 /*}}}*/ 304 304 /*FUNCTION Numericalflux::CreateKMatrixInternal {{{1*/ 305 void Numericalflux::CreateKMatrixInternal(Mat Kgg ,int analysis_type,int sub_analysis_type){305 void Numericalflux::CreateKMatrixInternal(Mat Kgg){ 306 306 307 307 /* local declarations */ 308 308 int i,j; 309 int analysis_type,sub_analysis_type; 309 310 310 311 /* node data: */ … … 342 343 Node** nodes=NULL; 343 344 Tria** trias=NULL; 345 346 /*Retrieve parameters: */ 347 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 348 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 344 349 345 350 /*recover objects from hooks: */ … … 417 422 /*}}}*/ 418 423 /*FUNCTION Numericalflux::CreateKMatrixBoundary {{{1*/ 419 void Numericalflux::CreateKMatrixBoundary(Mat Kgg ,int analysis_type,int sub_analysis_type){424 void Numericalflux::CreateKMatrixBoundary(Mat Kgg){ 420 425 421 426 /* local declarations */ 422 427 int i,j; 428 int analysis_type,sub_analysis_type; 423 429 424 430 /* node data: */ … … 458 464 Tria** trias=NULL; 459 465 466 /*Retrieve parameters: */ 467 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 468 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 469 460 470 /*recover objects from hooks: */ 461 471 nodes=(Node**)hnodes.deliverp(); … … 534 544 /*}}}*/ 535 545 /*FUNCTION Numericalflux::CreatePVector {{{1*/ 536 void Numericalflux::CreatePVector(Vec pg , int analysis_type,int sub_analysis_type){546 void Numericalflux::CreatePVector(Vec pg){ 537 547 538 548 int type; … … 543 553 if (type==InternalEnum){ 544 554 545 CreatePVectorInternal(pg ,analysis_type,sub_analysis_type);555 CreatePVectorInternal(pg); 546 556 } 547 557 else if (type==BoundaryEnum){ 548 558 549 CreatePVectorBoundary(pg ,analysis_type,sub_analysis_type);559 CreatePVectorBoundary(pg); 550 560 } 551 561 else ISSMERROR("type not supported yet"); … … 554 564 /*}}}*/ 555 565 /*FUNCTION Numericalflux::CreatePVectorInternal{{{1*/ 556 void Numericalflux::CreatePVectorInternal(Vec pg ,int analysis_type,int sub_analysis_type){566 void Numericalflux::CreatePVectorInternal(Vec pg){ 557 567 558 568 /*Nothing added to PVector*/ … … 562 572 /*}}}*/ 563 573 /*FUNCTION Numericalflux::CreatePVectorBoundary{{{1*/ 564 void Numericalflux::CreatePVectorBoundary(Vec pg ,int analysis_type,int sub_analysis_type){574 void Numericalflux::CreatePVectorBoundary(Vec pg){ 565 575 566 576 /* local declarations */ 567 577 int i,j; 578 int analysis_type,sub_analysis_type; 568 579 569 580 /* node data: */ … … 607 618 trias=(Tria**)helements.deliverp(); 608 619 620 /*Retrieve parameters: */ 621 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 622 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 623 609 624 /*recover parameters: */ 610 625 if (analysis_type==Prognostic2AnalysisEnum){ … … 673 688 } 674 689 /*}}}*/ 675 /*FUNCTION Numericalflux::DistributeNumDofs {{{1*/676 void Numericalflux::DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type){677 return;678 }679 690 /*}}}*/ 680 691 /*FUNCTION Numericalflux::GetB {{{1*/ … … 825 836 /*}}}*/ 826 837 /*FUNCTION Numericalflux::PenaltyCreateKMatrix {{{1*/ 827 void Numericalflux::PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){838 void Numericalflux::PenaltyCreateKMatrix(Mat Kgg,double kmax){ 828 839 829 840 /*No stiffness loads applied, do nothing: */ … … 833 844 /*}}}*/ 834 845 /*FUNCTION Numericalflux::PenaltyCreatePVector{{{1*/ 835 void Numericalflux::PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type){846 void Numericalflux::PenaltyCreatePVector(Vec pg,double kmax){ 836 847 837 848 /*No penalty loads applied, do nothing: */ -
TabularUnified issm/trunk/src/c/objects/Loads/Numericalflux.h ¶
r4007 r4043 50 50 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 51 51 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 52 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}52 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 53 53 bool InAnalysis(int analysis_type); 54 54 … … 57 57 void GetJacobianDeterminant(double* pJdet,double xyz_list[4][3], double gauss_coord); 58 58 void GetNodalFunctions(double* l1l4, double gauss_coord); 59 void DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type);60 59 void GetB(double* B, double gauss_coord); 61 60 void GetL(double* L, double gauss_coord,int numdof); … … 65 64 void UpdateFromInputs(void* inputs); 66 65 67 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);68 void CreateKMatrixInternal(Mat Kgg ,int analysis_type,int sub_analysis_type);69 void CreateKMatrixBoundary(Mat Kgg ,int analysis_type,int sub_analysis_type);70 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);71 void CreatePVectorInternal(Vec pg ,int analysis_type,int sub_analysis_type);72 void CreatePVectorBoundary(Vec pg ,int analysis_type,int sub_analysis_type);73 void PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type);74 void PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type);66 void CreateKMatrix(Mat Kgg); 67 void CreateKMatrixInternal(Mat Kgg); 68 void CreateKMatrixBoundary(Mat Kgg); 69 void CreatePVector(Vec pg); 70 void CreatePVectorInternal(Vec pg); 71 void CreatePVectorBoundary(Vec pg); 72 void PenaltyCreateKMatrix(Mat Kgg,double kmax); 73 void PenaltyCreatePVector(Vec pg,double kmax); 75 74 /*}}}*/ 76 75 -
TabularUnified issm/trunk/src/c/objects/Loads/Pengrid.cpp ¶
r4021 r4043 249 249 /*FUNCTION Pengrid::CreateKMatrix {{{1*/ 250 250 251 void Pengrid::CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type){251 void Pengrid::CreateKMatrix(Mat Kgg){ 252 252 253 253 /*No loads applied, do nothing: */ … … 257 257 /*}}}1*/ 258 258 /*FUNCTION Pengrid::CreatePVector {{{1*/ 259 void Pengrid::CreatePVector(Vec pg , int analysis_type,int sub_analysis_type){259 void Pengrid::CreatePVector(Vec pg){ 260 260 261 261 /*No loads applied, do nothing: */ … … 263 263 264 264 } 265 /*}}}1*/266 /*FUNCTION Pengrid::DistributenumDofs {{{1*/267 void Pengrid::DistributeNumDofs(int* numdofpernode,int analysis_type,int sub_analysis_type){return;}268 265 /*}}}1*/ 269 266 /*FUNCTION Pengrid::GetDofList {{{1*/ … … 291 288 /*}}}*/ 292 289 /*FUNCTION Pengrid::PenaltyConstrain {{{1*/ 293 void Pengrid::PenaltyConstrain(int* punstable,int analysis_type,int sub_analysis_type){ 290 void Pengrid::PenaltyConstrain(int* punstable){ 291 292 int analysis_type,sub_analysis_type; 293 294 /*Retrieve parameters: */ 295 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 296 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 294 297 295 298 if ((analysis_type==DiagnosticAnalysisEnum) && ((sub_analysis_type==StokesAnalysisEnum))){ … … 301 304 else if (analysis_type==ThermalAnalysisEnum){ 302 305 303 PenaltyConstrainThermal(punstable ,analysis_type,sub_analysis_type);306 PenaltyConstrainThermal(punstable); 304 307 305 308 } … … 317 320 /*}}}1*/ 318 321 /*FUNCTION Pengrid::PenaltyConstrainThermal {{{1*/ 319 void Pengrid::PenaltyConstrainThermal(int* punstable ,int analysis_type,int sub_analysis_type){322 void Pengrid::PenaltyConstrainThermal(int* punstable){ 320 323 321 324 // The penalty is stable if it doesn't change during to successive iterations. … … 401 404 /*}}}1*/ 402 405 /*FUNCTION Pengrid::PenaltyCreateMatrix {{{1*/ 403 void Pengrid::PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type){ 406 void Pengrid::PenaltyCreateKMatrix(Mat Kgg,double kmax){ 407 408 int analysis_type,sub_analysis_type; 409 410 /*Retrieve parameters: */ 411 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 412 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 404 413 405 414 if ((analysis_type==DiagnosticAnalysisEnum) && ((sub_analysis_type==StokesAnalysisEnum))){ 406 415 407 PenaltyCreateKMatrixDiagnosticStokes( Kgg,kmax ,analysis_type,sub_analysis_type);416 PenaltyCreateKMatrixDiagnosticStokes( Kgg,kmax); 408 417 } 409 418 else if (analysis_type==ThermalAnalysisEnum){ 410 419 411 PenaltyCreateKMatrixThermal( Kgg,kmax ,analysis_type,sub_analysis_type);420 PenaltyCreateKMatrixThermal( Kgg,kmax); 412 421 413 422 } 414 423 else if (analysis_type==MeltingAnalysisEnum){ 415 424 416 PenaltyCreateKMatrixMelting( Kgg,kmax ,analysis_type,sub_analysis_type);425 PenaltyCreateKMatrixMelting( Kgg,kmax); 417 426 418 427 } … … 424 433 /*}}}1*/ 425 434 /*FUNCTION Pengrid::PenaltyCreateKMatrixDiagnosticStokes {{{1*/ 426 void Pengrid::PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){435 void Pengrid::PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax){ 427 436 428 437 const int numgrids=1; … … 467 476 /*}}}1*/ 468 477 /*FUNCTION Pengrid::PenaltyCreateKMatrixMelting {{{1*/ 469 void Pengrid::PenaltyCreateKMatrixMelting(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){478 void Pengrid::PenaltyCreateKMatrixMelting(Mat Kgg,double kmax){ 470 479 471 480 int found=0; … … 526 535 /*}}}1*/ 527 536 /*FUNCTION Pengrid::PenaltyCreateKMatrixThermal {{{1*/ 528 void Pengrid::PenaltyCreateKMatrixThermal(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){537 void Pengrid::PenaltyCreateKMatrixThermal(Mat Kgg,double kmax){ 529 538 530 539 int found=0; … … 553 562 /*}}}1*/ 554 563 /*FUNCTION Pengrid::PenaltyCreatePVector {{{1*/ 555 void Pengrid::PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type){ 564 void Pengrid::PenaltyCreatePVector(Vec pg,double kmax){ 565 566 int analysis_type,sub_analysis_type; 567 568 /*Retrieve parameters: */ 569 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 570 this->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum); 556 571 557 572 if (analysis_type==ThermalAnalysisEnum){ 558 573 559 PenaltyCreatePVectorThermal( pg,kmax ,analysis_type,sub_analysis_type);574 PenaltyCreatePVectorThermal( pg,kmax); 560 575 561 576 } 562 577 else if (analysis_type==MeltingAnalysisEnum){ 563 578 564 PenaltyCreatePVectorMelting( pg,kmax ,analysis_type,sub_analysis_type);579 PenaltyCreatePVectorMelting( pg,kmax); 565 580 566 581 } … … 578 593 /*}}}1*/ 579 594 /*FUNCTION Pengrid::PenaltyCreatePVectorMelting {{{1*/ 580 void Pengrid::PenaltyCreatePVectorMelting(Vec pg, double kmax ,int analysis_type,int sub_analysis_type){595 void Pengrid::PenaltyCreatePVectorMelting(Vec pg, double kmax){ 581 596 582 597 const int numgrids=1; … … 654 669 /*}}}1*/ 655 670 /*FUNCTION Pengrid::PenaltyCreatePVectorThermal {{{1*/ 656 void Pengrid::PenaltyCreatePVectorThermal(Vec pg, double kmax ,int analysis_type,int sub_analysis_type){671 void Pengrid::PenaltyCreatePVectorThermal(Vec pg, double kmax){ 657 672 658 673 const int numgrids=1; … … 714 729 /*}}}1*/ 715 730 /*FUNCTION Pengrid::UpdateInputs {{{1*/ 716 void Pengrid::UpdateInputs(double* solution , int analysis_type, int sub_analysis_type){731 void Pengrid::UpdateInputs(double* solution){ 717 732 ISSMERROR("not supported yet!"); 718 733 } … … 761 776 } 762 777 /*}}}*/ 763 /*FUNCTION Pengrid::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type) {{{1*/764 void Pengrid::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){778 /*FUNCTION Pengrid::UpdateInputsFromSolution(double* solution) {{{1*/ 779 void Pengrid::UpdateInputsFromSolution(double* solution){ 765 780 /*Nothing updated yet*/ 766 781 } -
TabularUnified issm/trunk/src/c/objects/Loads/Pengrid.h ¶
r4007 r4043 56 56 void UpdateInputsFromConstant(int constant, int name); 57 57 void UpdateInputsFromConstant(bool constant, int name); 58 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);58 void UpdateInputsFromSolution(double* solution); 59 59 bool InAnalysis(int analysis_type); 60 60 61 61 /*}}}*/ 62 62 /*FUNCTION element numerical routines {{{1*/ 63 void DistributeNumDofs(int* numdofspernode,int analysis_type,int sub_analysis_type); 64 void CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type); 65 void CreatePVector(Vec pg, int analysis_type,int sub_analysis_type); 66 void PenaltyCreateKMatrix(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type); 67 void PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type); 68 void PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax,int analysis_type,int sub_analysis_type); 63 void CreateKMatrix(Mat Kgg); 64 void CreatePVector(Vec pg); 65 void PenaltyCreateKMatrix(Mat Kgg,double kmax); 66 void PenaltyCreatePVector(Vec pg,double kmax); 67 void PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax); 69 68 void GetDofList(int* doflist,int* pnumberofdofspernode); 70 void PenaltyCreateKMatrixThermal(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type);71 void PenaltyCreateKMatrixMelting(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type);72 void PenaltyCreatePVectorThermal(Vec pg, double kmax ,int analysis_type,int sub_analysis_type);73 void PenaltyCreatePVectorMelting(Vec pg, double kmax ,int analysis_type,int sub_analysis_type);74 void PenaltyConstrain(int* punstable ,int analysis_type,int sub_analysis_type);75 void PenaltyConstrainThermal(int* punstable ,int analysis_type,int sub_analysis_type);69 void PenaltyCreateKMatrixThermal(Mat Kgg,double kmax); 70 void PenaltyCreateKMatrixMelting(Mat Kgg,double kmax); 71 void PenaltyCreatePVectorThermal(Vec pg, double kmax); 72 void PenaltyCreatePVectorMelting(Vec pg, double kmax); 73 void PenaltyConstrain(int* punstable); 74 void PenaltyConstrainThermal(int* punstable); 76 75 77 76 /*updates:*/ 78 77 void UpdateFromDakota(void* inputs); 79 void UpdateInputs(double* solution , int analysis_type, int sub_analysis_type);78 void UpdateInputs(double* solution); 80 79 /*}}}*/ 81 80 -
TabularUnified issm/trunk/src/c/objects/Loads/Penpair.cpp ¶
r4021 r4043 181 181 /*FUNCTION Penpair::CreateKMatrix {{{1*/ 182 182 183 void Penpair::CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type){183 void Penpair::CreateKMatrix(Mat Kgg){ 184 184 185 185 /*No loads applied, do nothing: */ … … 189 189 /*}}}1*/ 190 190 /*FUNCTION Penpair::CreatePVector {{{1*/ 191 void Penpair::CreatePVector(Vec pg , int analysis_type,int sub_analysis_type){191 void Penpair::CreatePVector(Vec pg){ 192 192 193 193 /*No loads applied, do nothing: */ … … 197 197 /*}}}1*/ 198 198 /*FUNCTION Penpair::PenaltyCreateKMatrix {{{1*/ 199 void Penpair::PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){199 void Penpair::PenaltyCreateKMatrix(Mat Kgg,double kmax){ 200 200 201 201 /*If you code this piece, don't forget that a penalty will be inactive if it is dealing with clone nodes*/ … … 205 205 /*}}}1*/ 206 206 /*FUNCTION Penpair::PenaltyCreatePVector {{{1*/ 207 void Penpair::PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type){207 void Penpair::PenaltyCreatePVector(Vec pg,double kmax){ 208 208 /*No loads applied, do nothing: */ 209 209 return; -
TabularUnified issm/trunk/src/c/objects/Loads/Penpair.h ¶
r4007 r4043 47 47 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 48 48 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 49 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}49 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 50 50 bool InAnalysis(int analysis_type); 51 51 /*}}}*/ 52 52 /*numerics: {{{1*/ 53 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);54 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);55 void PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type);56 void PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type);53 void CreateKMatrix(Mat Kgg); 54 void CreatePVector(Vec pg); 55 void PenaltyCreateKMatrix(Mat Kgg,double kmax); 56 void PenaltyCreatePVector(Vec pg,double kmax); 57 57 /*}}}*/ 58 58 }; -
TabularUnified issm/trunk/src/c/objects/Loads/Riftfront.cpp ¶
r4021 r4043 290 290 #define _ZIGZAGCOUNTER_ 291 291 292 int Riftfront::Constrain(int* punstable , int analysis_type){292 int Riftfront::Constrain(int* punstable){ 293 293 294 294 const int numgrids = 2; … … 374 374 /*}}}1*/ 375 375 /*FUNCTION Riftfront::CreateKMatrix {{{1*/ 376 void Riftfront::CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type){376 void Riftfront::CreateKMatrix(Mat Kgg){ 377 377 /*do nothing: */ 378 378 } 379 379 /*}}}1*/ 380 380 /*FUNCTION Riftfront::CreatePVector {{{1*/ 381 void Riftfront::CreatePVector(Vec pg , int analysis_type,int sub_analysis_type){381 void Riftfront::CreatePVector(Vec pg){ 382 382 /*do nothing: */ 383 383 } 384 384 /*}}}1*/ 385 385 /*FUNCTION Riftfront::FreezeConstraints{{{1*/ 386 void Riftfront::FreezeConstraints( int analysis_type){386 void Riftfront::FreezeConstraints(void){ 387 387 388 388 /*Just set frozen flag to 1: */ … … 422 422 /*}}}1*/ 423 423 /*FUNCTION Riftfront::IsMaterialStable {{{1*/ 424 int Riftfront::IsMaterialStable( int analysis_type){424 int Riftfront::IsMaterialStable(void){ 425 425 426 426 int found=0; … … 440 440 /*}}}1*/ 441 441 /*FUNCTION Riftfront::MaxPenetration {{{1*/ 442 int Riftfront::MaxPenetration(double* ppenetration , int analysis_type){442 int Riftfront::MaxPenetration(double* ppenetration){ 443 443 444 444 const int numgrids=2; … … 506 506 /*}}}1*/ 507 507 /*FUNCTION Riftfront::PenaltyCreateKMatrix {{{1*/ 508 void Riftfront::PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type){508 void Riftfront::PenaltyCreateKMatrix(Mat Kgg,double kmax){ 509 509 510 510 int i; … … 618 618 /*}}}1*/ 619 619 /*FUNCTION Riftfront::PenaltyCreatePVector {{{1*/ 620 void Riftfront::PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type){620 void Riftfront::PenaltyCreatePVector(Vec pg,double kmax){ 621 621 622 622 int i ,j; … … 745 745 /*}}}1*/ 746 746 /*FUNCTION Riftfront::Penetration {{{1*/ 747 int Riftfront::Penetration(double* ppenetration , int analysis_type){747 int Riftfront::Penetration(double* ppenetration){ 748 748 749 749 double vx1; … … 790 790 /*}}}1*/ 791 791 /*FUNCTION Riftfront::PotentialUnstableConstraint {{{1*/ 792 int Riftfront::PotentialUnstableConstraint(int* punstable , int analysis_type){792 int Riftfront::PotentialUnstableConstraint(int* punstable){ 793 793 794 794 … … 849 849 /*}}}1*/ 850 850 /*FUNCTION Riftfront::PreConstrain {{{1*/ 851 int Riftfront::PreConstrain(int* punstable , int analysis_type){851 int Riftfront::PreConstrain(int* punstable){ 852 852 853 853 const int numgrids = 2; -
TabularUnified issm/trunk/src/c/objects/Loads/Riftfront.h ¶
r4003 r4043 65 65 void UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");} 66 66 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 67 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}67 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 68 68 bool InAnalysis(int analysis_type); 69 69 … … 73 73 /*numerics: {{{1*/ 74 74 void GetDofList(int* doflist,int* pnumberofdofs); 75 void CreateKMatrix(Mat Kgg ,int analysis_type,int sub_analysis_type);76 void CreatePVector(Vec pg , int analysis_type,int sub_analysis_type);77 void PenaltyCreateKMatrix(Mat Kgg,double kmax ,int analysis_type,int sub_analysis_type);78 void PenaltyCreatePVector(Vec pg,double kmax ,int analysis_type,int sub_analysis_type);75 void CreateKMatrix(Mat Kgg); 76 void CreatePVector(Vec pg); 77 void PenaltyCreateKMatrix(Mat Kgg,double kmax); 78 void PenaltyCreatePVector(Vec pg,double kmax); 79 79 bool PreStable(); 80 80 void SetPreStable(); 81 int PreConstrain(int* punstable , int analysis_type);82 int Constrain(int* punstable , int analysis_type);83 void FreezeConstraints( int analysis_type);81 int PreConstrain(int* punstable); 82 int Constrain(int* punstable); 83 void FreezeConstraints(void); 84 84 bool IsFrozen(void); 85 int Penetration(double* ppenetration , int analysis_type);86 int MaxPenetration(double* ppenetration , int analysis_type);87 int PotentialUnstableConstraint(int* punstable , int analysis_type);88 int IsMaterialStable( int analysis_type);85 int Penetration(double* ppenetration); 86 int MaxPenetration(double* ppenetration); 87 int PotentialUnstableConstraint(int* punstable); 88 int IsMaterialStable(void); 89 89 void OutputProperties(Vec riftproperties); 90 90 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Materials/Material.h ¶
r3751 r4043 29 29 virtual void UpdateInputsFromVector(int* vector, int name, int type)=0; 30 30 virtual void UpdateInputsFromVector(bool* vector, int name, int type)=0; 31 virtual void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type)=0;31 virtual void UpdateInputsFromSolution(double* solution)=0; 32 32 33 33 }; -
TabularUnified issm/trunk/src/c/objects/Materials/Matice.cpp ¶
r4021 r4043 146 146 return; 147 147 } 148 /*}}}*/149 /*FUNCTION Matice::DistributeNumDofs {{{1*/150 void Matice::DistributeNumDofs(int* numdofspernode,int analysis_type){return;}151 148 /*}}}*/ 152 149 /*FUNCTION Matice::Echo {{{1*/ … … 461 458 } 462 459 /*}}}*/ 463 /*FUNCTION Matice::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type) {{{1*/464 void Matice::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){465 /*Nothing updated yet*/ 466 } 467 /*}}}*/ 460 /*FUNCTION Matice::UpdateInputsFromSolution(double* solution) {{{1*/ 461 void Matice::UpdateInputsFromSolution(double* solution){ 462 /*Nothing updated yet*/ 463 } 464 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Materials/Matice.h ¶
r3984 r4043 35 35 int Id(); 36 36 int MyRank(); 37 void DistributeNumDofs(int* numdofspernode,int analysis_type);38 37 void UpdateFromInputs(void* inputs); 39 38 void SetB(double B_param); … … 51 50 void UpdateInputsFromConstant(int constant, int name); 52 51 void UpdateInputsFromConstant(bool constant, int name); 53 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);52 void UpdateInputsFromSolution(double* solution); 54 53 55 54 }; -
TabularUnified issm/trunk/src/c/objects/Materials/Matpar.cpp ¶
r3863 r4043 187 187 } 188 188 /*}}}1*/ 189 /*FUNCTION Matpar::DistributeNumDofs {{{1*/190 void Matpar::DistributeNumDofs(int* numdofspernode,int analysis_type){return;}191 /*}}}1*/192 189 /*FUNCTION Matpar::Echo {{{1*/ 193 190 void Matpar::Echo(void){ … … 312 309 } 313 310 /*}}}*/ 314 /*FUNCTION Matpar::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type) {{{1*/315 void Matpar::UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){316 /*Nothing updated yet*/ 317 } 318 /*}}}*/ 311 /*FUNCTION Matpar::UpdateInputsFromSolution(double* solution) {{{1*/ 312 void Matpar::UpdateInputsFromSolution(double* solution){ 313 /*Nothing updated yet*/ 314 } 315 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Materials/Matpar.h ¶
r3863 r4043 44 44 int Id(); 45 45 int MyRank(); 46 void DistributeNumDofs(int* numdofspernode,int analysis_type);47 46 void UpdateFromInputs(void* inputs); 48 47 double GetG(); … … 63 62 void UpdateInputsFromConstant(int constant, int name); 64 63 void UpdateInputsFromConstant(bool constant, int name); 65 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type);64 void UpdateInputsFromSolution(double* solution); 66 65 67 66 -
TabularUnified issm/trunk/src/c/objects/Node.h ¶
r4002 r4043 59 59 void UpdateInputsFromConstant(int constant, int name); 60 60 void UpdateInputsFromConstant(bool constant, int name); 61 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}61 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 62 62 bool InAnalysis(int analysis_type); 63 63 -
TabularUnified issm/trunk/src/c/objects/Object.h ¶
r3751 r4043 31 31 virtual void UpdateInputsFromConstant(int constant, int name)=0; 32 32 virtual void UpdateInputsFromConstant(bool constant, int name)=0; 33 virtual void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type)=0;33 virtual void UpdateInputsFromSolution(double* solution)=0; 34 34 35 35 }; -
TabularUnified issm/trunk/src/c/objects/Params/BoolParam.h ¶
r3842 r4043 56 56 void UpdateInputsFromConstant(int constant, int name); 57 57 void UpdateInputsFromConstant(bool constant, int name); 58 59 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 58 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 60 59 61 60 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/DoubleMatParam.h ¶
r3842 r4043 60 60 void UpdateInputsFromConstant(bool constant, int name); 61 61 62 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}62 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 63 63 64 64 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/DoubleParam.h ¶
r3888 r4043 58 58 void UpdateInputsFromConstant(bool constant, int name); 59 59 60 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}60 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 61 61 62 62 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/DoubleVecParam.h ¶
r3842 r4043 59 59 void UpdateInputsFromConstant(bool constant, int name); 60 60 61 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}61 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 62 62 /*}}}*/ 63 63 /*Param methods: {{{1*/ -
TabularUnified issm/trunk/src/c/objects/Params/IntParam.h ¶
r3842 r4043 57 57 void UpdateInputsFromConstant(int constant, int name); 58 58 void UpdateInputsFromConstant(bool constant, int name); 59 60 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 59 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 61 60 62 61 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/PetscMatParam.h ¶
r3842 r4043 57 57 void UpdateInputsFromConstant(int constant, int name); 58 58 void UpdateInputsFromConstant(bool constant, int name); 59 60 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 59 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 61 60 62 61 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/PetscVecParam.h ¶
r3842 r4043 57 57 void UpdateInputsFromConstant(int constant, int name); 58 58 void UpdateInputsFromConstant(bool constant, int name); 59 60 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 59 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 61 60 62 61 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/StringArrayParam.h ¶
r3842 r4043 59 59 void UpdateInputsFromConstant(int constant, int name); 60 60 void UpdateInputsFromConstant(bool constant, int name); 61 62 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 61 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 63 62 64 63 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Params/StringParam.h ¶
r3842 r4043 57 57 void UpdateInputsFromConstant(int constant, int name); 58 58 void UpdateInputsFromConstant(bool constant, int name); 59 60 void UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");} 59 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 61 60 62 61 /*}}}*/ -
TabularUnified issm/trunk/src/c/objects/Results/Result.h ¶
r4039 r4043 26 26 27 27 }; 28 29 30 void NodalValuesUnitConversion(double* nodal_values, int num_nodal_values,int enum_type,Parameters* parameters); 28 31 #endif -
TabularUnified issm/trunk/src/c/objects/SolPar.h ¶
r3751 r4043 46 46 void UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");} 47 47 48 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}48 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 49 49 50 50 /*functionality: */ -
TabularUnified issm/trunk/src/c/objects/Vertex.h ¶
r3863 r4043 57 57 void UpdateInputsFromConstant(bool constant, int name); 58 58 59 void UpdateInputsFromSolution(double* solution , int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}59 void UpdateInputsFromSolution(double* solution){ISSMERROR("Not implemented yet!");} 60 60 61 61 -
TabularUnified issm/trunk/src/c/objects/objects.h ¶
r4042 r4043 57 57 #include "./Results/SingVertexResult.h" 58 58 #include "./Results/BeamVertexResult.h" 59 #include "./Results/NodalValuesUnitConversion.h"60 59 61 60 /*Materials: */ -
TabularUnified issm/trunk/src/c/solutions/balancedthickness2_core.cpp ¶
r3941 r4043 10 10 #include "./solutions.h" 11 11 #include "../modules/modules.h" 12 #include "../solvers/solvers.h" 12 13 13 14 Results* balancedthickness2_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/balancedthickness_core.cpp ¶
r3941 r4043 10 10 #include "./solutions.h" 11 11 #include "../modules/modules.h" 12 #include "../solvers/solvers.h" 12 13 13 14 Results* balancedthickness_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/balancedvelocities_core.cpp ¶
r3941 r4043 9 9 #include "./solutions.h" 10 10 #include "../modules/modules.h" 11 #include "../solvers/solvers.h" 11 12 12 13 Results* balancedvelocities_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/bedslope_core.cpp ¶
r4037 r4043 8 8 #include "../EnumDefinitions/EnumDefinitions.h" 9 9 #include "../modules/modules.h" 10 #include "../solvers/solvers.h" 10 11 11 12 void bedslope_core(FemModel* femmodel){ -
TabularUnified issm/trunk/src/c/solutions/control_core.cpp ¶
r3938 r4043 6 6 #include "../modules/modules.h" 7 7 #include "../EnumDefinitions/EnumDefinitions.h" 8 #include "../solvers/solvers.h" 8 9 9 10 Results* control_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/diagnostic_core.cpp ¶
r4037 r4043 10 10 #include "../modules/modules.h" 11 11 #include "../include/include.h" 12 #include "../solvers/solvers.h" 12 13 13 14 void diagnostic_core(FemModel* femmodel){ … … 33 34 /*for qmu analysis, reinitialize velocity so that fake sensitivities do not show up as a result of a different restart of the convergence at each trial.*/ 34 35 if(qmu_analysis){ 35 ReinitializeInputx(femmodel ,VxEnum,QmuVxEnum);36 ReinitializeInputx(femmodel ,VyEnum,QmuVyEnum);37 ReinitializeInputx(femmodel ,VzEnum,QmuVzEnum);38 ReinitializeInputx(femmodel ,PressureEnum,QmuPressureEnum);36 ReinitializeInputx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum,QmuVxEnum); 37 ReinitializeInputx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum,QmuVyEnum); 38 ReinitializeInputx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VzEnum,QmuVzEnum); 39 ReinitializeInputx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,PressureEnum,QmuPressureEnum); 39 40 } 40 41 -
TabularUnified issm/trunk/src/c/solutions/gradjcompute_core.cpp ¶
r3959 r4043 12 12 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" 13 13 #endif 14 15 #include "../solvers/solvers.h" 14 16 15 17 Results* gradjcompute_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/prognostic2_core.cpp ¶
r3941 r4043 9 9 #include "./solutions.h" 10 10 #include "../modules/modules.h" 11 #include "../solvers/solvers.h" 11 12 12 13 Results* prognostic2_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/prognostic_core.cpp ¶
r3941 r4043 9 9 #include "./solutions.h" 10 10 #include "../modules/modules.h" 11 #include "../solvers/solvers.h" 11 12 12 13 Results* prognostic_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/solutions.h ¶
r4029 r4043 27 27 Results* transient_core_3d(FemModel* model); 28 28 Results* thermal_core(FemModel* model); 29 void slope_core(FemModel* fem,int sub_analysis_type); 29 void surfaceslope_core(FemModel* femmodel); 30 void bedslope_core(FemModel* femmodel); 30 31 31 32 //int GradJOrth(WorkspaceParams* workspaceparams); -
TabularUnified issm/trunk/src/c/solutions/steadystate_core.cpp ¶
r3938 r4043 9 9 #include "./solutions.h" 10 10 #include "../modules/modules.h" 11 #include "../solvers/solvers.h" 11 12 12 13 Results* steadystate_core(Model* model){ -
TabularUnified issm/trunk/src/c/solutions/surfaceslope_core.cpp ¶
r4037 r4043 7 7 #include "../objects/objects.h" 8 8 #include "../EnumDefinitions/EnumDefinitions.h" 9 #include "../solvers/solvers.h" 9 10 #include "../modules/modules.h" 10 11 -
TabularUnified issm/trunk/src/c/solutions/thermal_core.cpp ¶
r4037 r4043 10 10 #include "../modules/modules.h" 11 11 #include "../include/include.h" 12 #include "../solvers/solvers.h" 12 13 13 14 void thermal_core(FemModel* femmodel){ -
TabularUnified issm/trunk/src/c/solutions/transient_core.cpp ¶
r3938 r4043 9 9 #include "./solutions.h" 10 10 #include "../modules/modules.h" 11 #include "../solvers/solvers.h" 11 12 12 13 Results* transient_core(Model* model){ -
TabularUnified issm/trunk/src/m/enum/BeamVertexResultEnum.m ¶
r4039 r4043 9 9 % macro=BeamVertexResultEnum() 10 10 11 macro=19 0;11 macro=195; -
TabularUnified issm/trunk/src/m/enum/BetaEnum.m ¶
r4039 r4043 9 9 % macro=BetaEnum() 10 10 11 macro=19 1;11 macro=196; -
TabularUnified issm/trunk/src/m/enum/CmGradientEnum.m ¶
r4039 r4043 9 9 % macro=CmGradientEnum() 10 10 11 macro=19 2;11 macro=197; -
TabularUnified issm/trunk/src/m/enum/CmJumpEnum.m ¶
r4039 r4043 9 9 % macro=CmJumpEnum() 10 10 11 macro=19 3;11 macro=198; -
TabularUnified issm/trunk/src/m/enum/CmMaxEnum.m ¶
r4039 r4043 9 9 % macro=CmMaxEnum() 10 10 11 macro=19 4;11 macro=199; -
TabularUnified issm/trunk/src/m/enum/CmMinEnum.m ¶
r4039 r4043 9 9 % macro=CmMinEnum() 10 10 11 macro= 195;11 macro=200; -
TabularUnified issm/trunk/src/m/enum/ConnectivityEnum.m ¶
r4039 r4043 9 9 % macro=ConnectivityEnum() 10 10 11 macro= 196;11 macro=201; -
TabularUnified issm/trunk/src/m/enum/ControlParameterEnum.m ¶
r4039 r4043 9 9 % macro=ControlParameterEnum() 10 10 11 macro= 197;11 macro=202; -
TabularUnified issm/trunk/src/m/enum/ControlSteadyEnum.m ¶
r4039 r4043 9 9 % macro=ControlSteadyEnum() 10 10 11 macro= 198;11 macro=203; -
TabularUnified issm/trunk/src/m/enum/DakotaParameterEnum.m ¶
r4039 r4043 9 9 % macro=DakotaParameterEnum() 10 10 11 macro= 199;11 macro=204; -
TabularUnified issm/trunk/src/m/enum/DimEnum.m ¶
r4039 r4043 9 9 % macro=DimEnum() 10 10 11 macro=20 0;11 macro=205; -
TabularUnified issm/trunk/src/m/enum/DoubleResultEnum.m ¶
r4039 r4043 9 9 % macro=DoubleResultEnum() 10 10 11 macro=1 86;11 macro=191; -
TabularUnified issm/trunk/src/m/enum/EnumAsString.m ¶
r4039 r4043 167 167 case PressureEnum(), string='Pressure'; return 168 168 case PressureOldEnum(), string='PressureOld'; return 169 case QmuPressureEnum(), string='QmuPressure'; return 170 case StokesPressureEnum(), string='StokesPressure'; return 169 171 case ResetPenaltiesEnum(), string='ResetPenalties'; return 170 172 case RheologyBEnum(), string='RheologyB'; return … … 186 188 case VxObsEnum(), string='VxObs'; return 187 189 case VxOldEnum(), string='VxOld'; return 190 case QmuVxEnum(), string='QmuVx'; return 188 191 case VyAverageEnum(), string='VyAverage'; return 189 192 case VyEnum(), string='Vy'; return 190 193 case VyObsEnum(), string='VyObs'; return 191 194 case VyOldEnum(), string='VyOld'; return 195 case QmuVyEnum(), string='QmuVy'; return 192 196 case VzAverageEnum(), string='VzAverage'; return 193 197 case VzEnum(), string='Vz'; return 194 198 case VzObsEnum(), string='VzObs'; return 195 199 case VzOldEnum(), string='VzOld'; return 200 case QmuVzEnum(), string='QmuVz'; return 196 201 case WeightsEnum(), string='Weights'; return 197 202 case P0Enum(), string='P0'; return -
TabularUnified issm/trunk/src/m/enum/EpsAbsEnum.m ¶
r4039 r4043 9 9 % macro=EpsAbsEnum() 10 10 11 macro=20 1;11 macro=206; -
TabularUnified issm/trunk/src/m/enum/EpsCmEnum.m ¶
r4039 r4043 9 9 % macro=EpsCmEnum() 10 10 11 macro=20 2;11 macro=207; -
TabularUnified issm/trunk/src/m/enum/EpsRelEnum.m ¶
r4039 r4043 9 9 % macro=EpsRelEnum() 10 10 11 macro=20 3;11 macro=208; -
TabularUnified issm/trunk/src/m/enum/EpsResEnum.m ¶
r4039 r4043 9 9 % macro=EpsResEnum() 10 10 11 macro=20 4;11 macro=209; -
TabularUnified issm/trunk/src/m/enum/ExtrudeParamEnum.m ¶
r4039 r4043 9 9 % macro=ExtrudeParamEnum() 10 10 11 macro=2 05;11 macro=210; -
TabularUnified issm/trunk/src/m/enum/HeatCapacityEnum.m ¶
r4039 r4043 9 9 % macro=HeatCapacityEnum() 10 10 11 macro=2 06;11 macro=211; -
TabularUnified issm/trunk/src/m/enum/IsHutterEnum.m ¶
r4039 r4043 9 9 % macro=IsHutterEnum() 10 10 11 macro=2 07;11 macro=212; -
TabularUnified issm/trunk/src/m/enum/IsMacAyealPattynEnum.m ¶
r4039 r4043 9 9 % macro=IsMacAyealPattynEnum() 10 10 11 macro=2 08;11 macro=213; -
TabularUnified issm/trunk/src/m/enum/IsStokesEnum.m ¶
r4039 r4043 9 9 % macro=IsStokesEnum() 10 10 11 macro=2 09;11 macro=214; -
TabularUnified issm/trunk/src/m/enum/LatentHeatEnum.m ¶
r4039 r4043 9 9 % macro=LatentHeatEnum() 10 10 11 macro=21 0;11 macro=215; -
TabularUnified issm/trunk/src/m/enum/LowmemEnum.m ¶
r4039 r4043 9 9 % macro=LowmemEnum() 10 10 11 macro=21 1;11 macro=216; -
TabularUnified issm/trunk/src/m/enum/MaxIterEnum.m ¶
r4039 r4043 9 9 % macro=MaxIterEnum() 10 10 11 macro=21 2;11 macro=217; -
TabularUnified issm/trunk/src/m/enum/MaxNonlinearIterationsEnum.m ¶
r4039 r4043 9 9 % macro=MaxNonlinearIterationsEnum() 10 10 11 macro=21 3;11 macro=218; -
TabularUnified issm/trunk/src/m/enum/MeltingPointEnum.m ¶
r4039 r4043 9 9 % macro=MeltingPointEnum() 10 10 11 macro=21 4;11 macro=219; -
TabularUnified issm/trunk/src/m/enum/MinMechanicalConstraintsEnum.m ¶
r4039 r4043 9 9 % macro=MinMechanicalConstraintsEnum() 10 10 11 macro=2 15;11 macro=220; -
TabularUnified issm/trunk/src/m/enum/MinThermalConstraintsEnum.m ¶
r4039 r4043 9 9 % macro=MinThermalConstraintsEnum() 10 10 11 macro=2 16;11 macro=221; -
TabularUnified issm/trunk/src/m/enum/NStepsEnum.m ¶
r4039 r4043 9 9 % macro=NStepsEnum() 10 10 11 macro=2 17;11 macro=222; -
TabularUnified issm/trunk/src/m/enum/NdtEnum.m ¶
r4039 r4043 9 9 % macro=NdtEnum() 10 10 11 macro=2 18;11 macro=223; -
TabularUnified issm/trunk/src/m/enum/NumOutputEnum.m ¶
r4039 r4043 9 9 % macro=NumOutputEnum() 10 10 11 macro=2 19;11 macro=224; -
TabularUnified issm/trunk/src/m/enum/NumRiftsEnum.m ¶
r4039 r4043 9 9 % macro=NumRiftsEnum() 10 10 11 macro=22 0;11 macro=225; -
TabularUnified issm/trunk/src/m/enum/NumberOfDofsPerNodeEnum.m ¶
r4039 r4043 9 9 % macro=NumberOfDofsPerNodeEnum() 10 10 11 macro=22 1;11 macro=226; -
TabularUnified issm/trunk/src/m/enum/NumberOfElementsEnum.m ¶
r4039 r4043 9 9 % macro=NumberOfElementsEnum() 10 10 11 macro=22 2;11 macro=227; -
TabularUnified issm/trunk/src/m/enum/NumberOfNodesEnum.m ¶
r4039 r4043 9 9 % macro=NumberOfNodesEnum() 10 10 11 macro=22 3;11 macro=228; -
TabularUnified issm/trunk/src/m/enum/NumberOfVerticesEnum.m ¶
r4039 r4043 9 9 % macro=NumberOfVerticesEnum() 10 10 11 macro=22 4;11 macro=229; -
TabularUnified issm/trunk/src/m/enum/OptScalEnum.m ¶
r4039 r4043 9 9 % macro=OptScalEnum() 10 10 11 macro=2 25;11 macro=230; -
TabularUnified issm/trunk/src/m/enum/OutputFileNameEnum.m ¶
r4039 r4043 9 9 % macro=OutputFileNameEnum() 10 10 11 macro=2 26;11 macro=231; -
TabularUnified issm/trunk/src/m/enum/P0Enum.m ¶
r4039 r4043 9 9 % macro=P0Enum() 10 10 11 macro=18 4;11 macro=189; -
TabularUnified issm/trunk/src/m/enum/P1Enum.m ¶
r4039 r4043 9 9 % macro=P1Enum() 10 10 11 macro=1 85;11 macro=190; -
TabularUnified issm/trunk/src/m/enum/ParameterOutputEnum.m ¶
r4039 r4043 9 9 % macro=ParameterOutputEnum() 10 10 11 macro=2 27;11 macro=232; -
TabularUnified issm/trunk/src/m/enum/PenaltyMeltingEnum.m ¶
r4039 r4043 9 9 % macro=PenaltyMeltingEnum() 10 10 11 macro=2 28;11 macro=233; -
TabularUnified issm/trunk/src/m/enum/PentaVertexResultEnum.m ¶
r4039 r4043 9 9 % macro=PentaVertexResultEnum() 10 10 11 macro=1 88;11 macro=193; -
TabularUnified issm/trunk/src/m/enum/QmuAnalysisEnum.m ¶
r4039 r4043 9 9 % macro=QmuAnalysisEnum() 10 10 11 macro=2 29;11 macro=234; -
TabularUnified issm/trunk/src/m/enum/QmuErrNameEnum.m ¶
r4039 r4043 9 9 % macro=QmuErrNameEnum() 10 10 11 macro=23 0;11 macro=235; -
TabularUnified issm/trunk/src/m/enum/QmuInNameEnum.m ¶
r4039 r4043 9 9 % macro=QmuInNameEnum() 10 10 11 macro=23 1;11 macro=236; -
TabularUnified issm/trunk/src/m/enum/QmuMassFluxSegmentsEnum.m ¶
r4039 r4043 9 9 % macro=QmuMassFluxSegmentsEnum() 10 10 11 macro=23 2;11 macro=237; -
TabularUnified issm/trunk/src/m/enum/QmuNPartEnum.m ¶
r4039 r4043 9 9 % macro=QmuNPartEnum() 10 10 11 macro=23 3;11 macro=238; -
TabularUnified issm/trunk/src/m/enum/QmuOutNameEnum.m ¶
r4039 r4043 9 9 % macro=QmuOutNameEnum() 10 10 11 macro=23 4;11 macro=239; -
TabularUnified issm/trunk/src/m/enum/QmuPartEnum.m ¶
r4039 r4043 9 9 % macro=QmuPartEnum() 10 10 11 macro=2 35;11 macro=240; -
TabularUnified issm/trunk/src/m/enum/ResetPenaltiesEnum.m ¶
r4039 r4043 9 9 % macro=ResetPenaltiesEnum() 10 10 11 macro=15 6;11 macro=158; -
TabularUnified issm/trunk/src/m/enum/ResponseDescriptorsEnum.m ¶
r4039 r4043 9 9 % macro=ResponseDescriptorsEnum() 10 10 11 macro=2 36;11 macro=241; -
TabularUnified issm/trunk/src/m/enum/RheologyBEnum.m ¶
r4039 r4043 9 9 % macro=RheologyBEnum() 10 10 11 macro=15 7;11 macro=159; -
TabularUnified issm/trunk/src/m/enum/RheologyNEnum.m ¶
r4039 r4043 9 9 % macro=RheologyNEnum() 10 10 11 macro=1 58;11 macro=160; -
TabularUnified issm/trunk/src/m/enum/SegmentOnIceShelfEnum.m ¶
r4039 r4043 9 9 % macro=SegmentOnIceShelfEnum() 10 10 11 macro=1 59;11 macro=161; -
TabularUnified issm/trunk/src/m/enum/SingVertexResultEnum.m ¶
r4039 r4043 9 9 % macro=SingVertexResultEnum() 10 10 11 macro=1 89;11 macro=194; -
TabularUnified issm/trunk/src/m/enum/SolverStringEnum.m ¶
r4039 r4043 9 9 % macro=SolverStringEnum() 10 10 11 macro=2 37;11 macro=242; -
TabularUnified issm/trunk/src/m/enum/SparsityEnum.m ¶
r4039 r4043 9 9 % macro=SparsityEnum() 10 10 11 macro=2 38;11 macro=243; -
TabularUnified issm/trunk/src/m/enum/StabilizeConstraintsEnum.m ¶
r4039 r4043 9 9 % macro=StabilizeConstraintsEnum() 10 10 11 macro=16 0;11 macro=162; -
TabularUnified issm/trunk/src/m/enum/StokesReconditioningEnum.m ¶
r4039 r4043 9 9 % macro=StokesReconditioningEnum() 10 10 11 macro=16 1;11 macro=163; -
TabularUnified issm/trunk/src/m/enum/StringAsEnum.m ¶
r4039 r4043 165 165 elseif (strcmpi(name,'Pressure')), enum=PressureEnum(); return 166 166 elseif (strcmpi(name,'PressureOld')), enum=PressureOldEnum(); return 167 elseif (strcmpi(name,'QmuPressure')), enum=QmuPressureEnum(); return 168 elseif (strcmpi(name,'StokesPressure')), enum=StokesPressureEnum(); return 167 169 elseif (strcmpi(name,'ResetPenalties')), enum=ResetPenaltiesEnum(); return 168 170 elseif (strcmpi(name,'RheologyB')), enum=RheologyBEnum(); return … … 184 186 elseif (strcmpi(name,'VxObs')), enum=VxObsEnum(); return 185 187 elseif (strcmpi(name,'VxOld')), enum=VxOldEnum(); return 188 elseif (strcmpi(name,'QmuVx')), enum=QmuVxEnum(); return 186 189 elseif (strcmpi(name,'VyAverage')), enum=VyAverageEnum(); return 187 190 elseif (strcmpi(name,'Vy')), enum=VyEnum(); return 188 191 elseif (strcmpi(name,'VyObs')), enum=VyObsEnum(); return 189 192 elseif (strcmpi(name,'VyOld')), enum=VyOldEnum(); return 193 elseif (strcmpi(name,'QmuVy')), enum=QmuVyEnum(); return 190 194 elseif (strcmpi(name,'VzAverage')), enum=VzAverageEnum(); return 191 195 elseif (strcmpi(name,'Vz')), enum=VzEnum(); return 192 196 elseif (strcmpi(name,'VzObs')), enum=VzObsEnum(); return 193 197 elseif (strcmpi(name,'VzOld')), enum=VzOldEnum(); return 198 elseif (strcmpi(name,'QmuVz')), enum=QmuVzEnum(); return 194 199 elseif (strcmpi(name,'Weights')), enum=WeightsEnum(); return 195 200 elseif (strcmpi(name,'P0')), enum=P0Enum(); return -
TabularUnified issm/trunk/src/m/enum/SurfaceAreaEnum.m ¶
r4039 r4043 9 9 % macro=SurfaceAreaEnum() 10 10 11 macro=16 2;11 macro=164; -
TabularUnified issm/trunk/src/m/enum/SurfaceEnum.m ¶
r4039 r4043 9 9 % macro=SurfaceEnum() 10 10 11 macro=16 3;11 macro=165; -
TabularUnified issm/trunk/src/m/enum/SurfaceSlopeXEnum.m ¶
r4039 r4043 9 9 % macro=SurfaceSlopeXEnum() 10 10 11 macro=16 4;11 macro=166; -
TabularUnified issm/trunk/src/m/enum/SurfaceSlopeYEnum.m ¶
r4039 r4043 9 9 % macro=SurfaceSlopeYEnum() 10 10 11 macro=16 5;11 macro=167; -
TabularUnified issm/trunk/src/m/enum/TemperatureAverageEnum.m ¶
r4039 r4043 9 9 % macro=TemperatureAverageEnum() 10 10 11 macro=16 7;11 macro=169; -
TabularUnified issm/trunk/src/m/enum/TemperatureEnum.m ¶
r4039 r4043 9 9 % macro=TemperatureEnum() 10 10 11 macro=16 6;11 macro=168; -
TabularUnified issm/trunk/src/m/enum/ThicknessEnum.m ¶
r4039 r4043 9 9 % macro=ThicknessEnum() 10 10 11 macro=1 68;11 macro=170; -
TabularUnified issm/trunk/src/m/enum/TolXEnum.m ¶
r4039 r4043 9 9 % macro=TolXEnum() 10 10 11 macro=2 39;11 macro=244; -
TabularUnified issm/trunk/src/m/enum/TriaVertexResultEnum.m ¶
r4039 r4043 9 9 % macro=TriaVertexResultEnum() 10 10 11 macro=1 87;11 macro=192; -
TabularUnified issm/trunk/src/m/enum/TypeEnum.m ¶
r4039 r4043 9 9 % macro=TypeEnum() 10 10 11 macro=1 69;11 macro=171; -
TabularUnified issm/trunk/src/m/enum/VariableDescriptorsEnum.m ¶
r4039 r4043 9 9 % macro=VariableDescriptorsEnum() 10 10 11 macro=24 0;11 macro=245; -
TabularUnified issm/trunk/src/m/enum/VerboseEnum.m ¶
r4039 r4043 9 9 % macro=VerboseEnum() 10 10 11 macro=24 1;11 macro=246; -
TabularUnified issm/trunk/src/m/enum/ViscosityOvershootEnum.m ¶
r4039 r4043 9 9 % macro=ViscosityOvershootEnum() 10 10 11 macro=17 0;11 macro=172; -
TabularUnified issm/trunk/src/m/enum/VxAverageEnum.m ¶
r4039 r4043 9 9 % macro=VxAverageEnum() 10 10 11 macro=17 1;11 macro=173; -
TabularUnified issm/trunk/src/m/enum/VxEnum.m ¶
r4039 r4043 9 9 % macro=VxEnum() 10 10 11 macro=17 2;11 macro=174; -
TabularUnified issm/trunk/src/m/enum/VxObsEnum.m ¶
r4039 r4043 9 9 % macro=VxObsEnum() 10 10 11 macro=17 3;11 macro=175; -
TabularUnified issm/trunk/src/m/enum/VxOldEnum.m ¶
r4039 r4043 9 9 % macro=VxOldEnum() 10 10 11 macro=17 4;11 macro=176; -
TabularUnified issm/trunk/src/m/enum/VyAverageEnum.m ¶
r4039 r4043 9 9 % macro=VyAverageEnum() 10 10 11 macro=17 5;11 macro=178; -
TabularUnified issm/trunk/src/m/enum/VyEnum.m ¶
r4039 r4043 9 9 % macro=VyEnum() 10 10 11 macro=17 6;11 macro=179; -
TabularUnified issm/trunk/src/m/enum/VyObsEnum.m ¶
r4039 r4043 9 9 % macro=VyObsEnum() 10 10 11 macro=1 77;11 macro=180; -
TabularUnified issm/trunk/src/m/enum/VyOldEnum.m ¶
r4039 r4043 9 9 % macro=VyOldEnum() 10 10 11 macro=1 78;11 macro=181; -
TabularUnified issm/trunk/src/m/enum/VzAverageEnum.m ¶
r4039 r4043 9 9 % macro=VzAverageEnum() 10 10 11 macro=1 79;11 macro=183; -
TabularUnified issm/trunk/src/m/enum/VzEnum.m ¶
r4039 r4043 9 9 % macro=VzEnum() 10 10 11 macro=18 0;11 macro=184; -
TabularUnified issm/trunk/src/m/enum/VzObsEnum.m ¶
r4039 r4043 9 9 % macro=VzObsEnum() 10 10 11 macro=18 1;11 macro=185; -
TabularUnified issm/trunk/src/m/enum/VzOldEnum.m ¶
r4039 r4043 9 9 % macro=VzOldEnum() 10 10 11 macro=18 2;11 macro=186; -
TabularUnified issm/trunk/src/m/enum/WaitOnLockEnum.m ¶
r4039 r4043 9 9 % macro=WaitOnLockEnum() 10 10 11 macro=24 2;11 macro=247; -
TabularUnified issm/trunk/src/m/enum/WeightsEnum.m ¶
r4039 r4043 9 9 % macro=WeightsEnum() 10 10 11 macro=18 3;11 macro=188; -
TabularUnified issm/trunk/src/m/enum/YtsEnum.m ¶
r4039 r4043 9 9 % macro=YtsEnum() 10 10 11 macro=24 3;11 macro=248; -
TabularUnified issm/trunk/src/m/solutions/jpl/SpawnCore.m ¶
r3839 r4043 1 function responses=SpawnCore(models,variables,variabledescriptors, analysis_type,sub_analysis_type,counter);1 function responses=SpawnCore(models,variables,variabledescriptors,counter); 2 2 %SPAWNCORE - for Qmu analysis, using Dakota. Spawn the core solution. 3 3 %
Note:
See TracChangeset
for help on using the changeset viewer.