Changeset 17429 for issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
- Timestamp:
- 03/13/14 15:32:02 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
r17428 r17429 29 29 } 30 30 } 31 32 31 if(iomodel->meshtype==Mesh3DEnum){ 33 32 iomodel->FetchDataToInput(elements,MeshElementonbedEnum); 33 iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum); 34 34 } 35 35 } … … 86 86 87 87 /*Intermediaries */ 88 int meshtype,dim;88 int meshtype,dim; 89 89 int i,row,col,stabilization; 90 90 bool extrapolatebydiffusion = true; … … 110 110 IssmDouble* B = xNew<IssmDouble>(dim*numnodes); 111 111 IssmDouble* Bprime = xNew<IssmDouble>(dim*numnodes); 112 IssmDouble* dlsf = xNew<IssmDouble>(dim);113 IssmDouble* normal= xNew<IssmDouble>(dim);114 IssmDouble* D = xNew<IssmDouble>(dim*dim);112 IssmDouble* D = xNew<IssmDouble>(dim*dim); 113 IssmDouble* dlsf = xNew<IssmDouble>(dim); 114 IssmDouble* normal= xNew<IssmDouble>(dim); 115 115 116 116 /*Retrieve all inputs and parameters*/ … … 162 162 for(col=0;col<dim;col++) 163 163 if(row==col) 164 D[row*dim+col] =D_scalar*normal[row];164 D[row*dim+col]=D_scalar*normal[row]; 165 165 else 166 D[row*dim+col] =0.;166 D[row*dim+col]=0.; 167 167 TripleMultiply(B,dim,numnodes,1, 168 168 D,dim,dim,0, … … 181 181 for(col=0;col<dim;col++) 182 182 if(row==col) 183 D[row*dim+col] =D_scalar*kappa;183 D[row*dim+col]=D_scalar*kappa; 184 184 else 185 D[row*dim+col] =0.;185 D[row*dim+col]=0.; 186 186 TripleMultiply(Bprime,dim,numnodes,1, 187 187 D,dim,dim,0, … … 207 207 xDelete<IssmDouble>(B); 208 208 xDelete<IssmDouble>(Bprime); 209 xDelete<IssmDouble>(D); 209 210 xDelete<IssmDouble>(dlsf); 210 211 xDelete<IssmDouble>(normal); 212 delete gauss; 211 213 if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; 212 delete gauss;213 214 return Ke; 214 215 … … 224 225 /*Fetch number of nodes */ 225 226 int numnodes = basalelement->GetNumberOfNodes(); 226 basalelement->FindParam(&meshtype,MeshTypeEnum);227 227 228 228 /*Initialize Element vector*/ … … 230 230 for(i=0;i<numnodes;i++) 231 231 pe->values[i]=0.; 232 233 basalelement->FindParam(&meshtype,MeshTypeEnum); 232 234 if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;}; 233 235 return pe; … … 326 328 node=element->GetNode(in); 327 329 levelset_input->GetInputValue(&phi,gauss); 328 if(phi<=0.){ 329 /* if ice, set dirichlet BC */ 330 extvar_input->GetInputValue(&value,gauss); 331 node->ApplyConstraint(1,value); 332 } 333 else { 334 /* no ice, set no spc */ 335 node->DofInFSet(0); 330 if(node->IsActive()){ 331 if(phi<=0.){ 332 /* if ice, set dirichlet BC */ 333 extvar_input->GetInputValue(&value,gauss); 334 node->ApplyConstraint(1,value); 335 } 336 else { 337 /* no ice, set no spc */ 338 node->DofInFSet(0); 339 } 336 340 } 337 341 }
Note:
See TracChangeset
for help on using the changeset viewer.