Changeset 18884
- Timestamp:
- 11/28/14 09:54:41 (10 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r18861 r18884 944 944 return z; 945 945 }/*}}}*/ 946 void Element::GradientIndexing(int* indexing,int control_index ){/*{{{*/946 void Element::GradientIndexing(int* indexing,int control_index,bool onsid){/*{{{*/ 947 947 948 948 /*Get number of controls*/ … … 954 954 955 955 /*get gradient indices*/ 956 for(int i=0;i<numvertices;i++){ 957 indexing[i]=num_controls*this->vertices[i]->Pid() + control_index; 956 if(onsid){ 957 for(int i=0;i<numvertices;i++){ 958 indexing[i]=num_controls*this->vertices[i]->Sid() + control_index; 959 } 960 } 961 else{ 962 for(int i=0;i<numvertices;i++){ 963 indexing[i]=num_controls*this->vertices[i]->Pid() + control_index; 964 } 958 965 } 959 966 -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r18855 r18884 104 104 IssmDouble GetYcoord(IssmDouble* xyz_list,Gauss* gauss); 105 105 IssmDouble GetZcoord(IssmDouble* xyz_list,Gauss* gauss); 106 void GradientIndexing(int* indexing,int control_index );106 void GradientIndexing(int* indexing,int control_index,bool onsid=false); 107 107 bool HasNodeOnBase(); 108 108 bool HasNodeOnSurface(); … … 288 288 virtual void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index)=0; 289 289 virtual void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum)=0; 290 virtual void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data )=0;290 virtual void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid)=0; 291 291 virtual void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index)=0; 292 292 virtual void InputControlUpdate(IssmDouble scalar,bool save_parameter)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r18860 r18884 3197 3197 } 3198 3198 /*}}}*/ 3199 void Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data ){/*{{{*/3200 3201 int vertex pidlist[NUMVERTICES];3199 void Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,bool onsid){/*{{{*/ 3200 3201 int vertexidlist[NUMVERTICES]; 3202 3202 3203 3203 /*Get out if this is not an element input*/ … … 3205 3205 3206 3206 /*Prepare index list*/ 3207 GradientIndexing(&vertex pidlist[0],control_index);3207 GradientIndexing(&vertexidlist[0],control_index,onsid); 3208 3208 3209 3209 /*Get input (either in element or material)*/ … … 3217 3217 } 3218 3218 3219 ((ControlInput*)input)->GetVectorFromInputs(vector,&vertex pidlist[0],data);3219 ((ControlInput*)input)->GetVectorFromInputs(vector,&vertexidlist[0],data); 3220 3220 } 3221 3221 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r18855 r18884 126 126 #endif 127 127 128 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data );128 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid); 129 129 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index); 130 130 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index); -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r18855 r18884 164 164 #endif 165 165 166 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data ){_error_("not implemented yet");};166 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 167 167 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){_error_("not implemented yet");}; 168 168 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r18855 r18884 170 170 IssmDouble DragCoefficientAbsGradient(void){_error_("not implemented yet");}; 171 171 void GradientIndexing(int* indexing,int control_index){_error_("not implemented yet");}; 172 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data ){_error_("not implemented yet");};172 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 173 173 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){_error_("not implemented yet");}; 174 174 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r18860 r18884 3034 3034 3035 3035 }/*}}}*/ 3036 void Tria::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data ){/*{{{*/3037 3038 int vertex pidlist[NUMVERTICES];3036 void Tria::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,bool onsid){/*{{{*/ 3037 3038 int vertexidlist[NUMVERTICES]; 3039 3039 Input *input=NULL; 3040 3040 … … 3043 3043 3044 3044 /*Prepare index list*/ 3045 GradientIndexing(&vertex pidlist[0],control_index);3045 GradientIndexing(&vertexidlist[0],control_index,onsid); 3046 3046 3047 3047 /*Get input (either in element or material)*/ … … 3053 3053 } 3054 3054 3055 ((ControlInput*)input)->GetVectorFromInputs(vector,&vertex pidlist[0],data);3055 ((ControlInput*)input)->GetVectorFromInputs(vector,&vertexidlist[0],data); 3056 3056 } 3057 3057 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r18855 r18884 132 132 #endif 133 133 134 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data );134 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid); 135 135 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index); 136 136 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
Note:
See TracChangeset
for help on using the changeset viewer.