Changeset 23507
- Timestamp:
- 12/06/18 13:14:19 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp
r23462 r23507 52 52 }/*}}}*/ 53 53 ElementMatrix* GLheightadvectionAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/ 54 _error_("Not implemented");54 _error_("Not implemented"); 55 55 }/*}}}*/ 56 56 ElementMatrix* GLheightadvectionAnalysis::CreateKMatrix(Element* element){/*{{{*/ … … 88 88 //Input* vx_input=element->GetInput(BaseSlopeXEnum); _assert_(vx_input); 89 89 //Input* vy_input=element->GetInput(BaseSlopeYEnum); _assert_(vy_input); 90 90 Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input); 91 91 Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input); 92 92 Input* bc_input=element->GetInput(MeshVertexonboundaryEnum); _assert_(bc_input); … … 156 156 }/*}}}*/ 157 157 void GLheightadvectionAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/ 158 158 _error_("not implemented yet"); 159 159 }/*}}}*/ 160 160 void GLheightadvectionAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ … … 184 184 Element *element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 185 185 186 if(!element->IsIceInElement()) continue; 187 int numnodes = element->GetNumberOfNodes(); 188 IssmDouble *mask = xNew<IssmDouble>(numnodes); 189 IssmDouble *bed = xNew<IssmDouble>(numnodes); 190 IssmDouble *lset = xNew<IssmDouble>(numnodes); 186 int numnodes = element->GetNumberOfNodes(); 187 IssmDouble *mask = xNew<IssmDouble>(numnodes); 188 IssmDouble *bed = xNew<IssmDouble>(numnodes); 189 IssmDouble *ls_active = xNew<IssmDouble>(numnodes); 191 190 192 191 element->GetInputListOnNodes(&mask[0],MaskGroundediceLevelsetEnum); 193 192 element->GetInputListOnNodes(&bed[0],BaseEnum); 194 element->GetInputListOnNodes(&ls et[0],MaskIceLevelsetEnum);193 element->GetInputListOnNodes(&ls_active[0],IceMaskNodeActivationEnum); 195 194 196 195 for(int in=0;in<numnodes;in++){ 197 196 Node* node=element->GetNode(in); 198 if(mask[in]<0. ){197 if(mask[in]<0. && ls_active[in]==1.){ 199 198 node->Activate(); 200 199 } … … 206 205 xDelete<IssmDouble>(mask); 207 206 xDelete<IssmDouble>(bed); 208 xDelete<IssmDouble>(ls et);207 xDelete<IssmDouble>(ls_active); 209 208 } 210 209
Note:
See TracChangeset
for help on using the changeset viewer.