Changeset 18236 for issm/trunk-jpl/src/c/analyses/UzawaPressureAnalysis.cpp
- Timestamp:
- 07/11/14 11:28:58 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/UzawaPressureAnalysis.cpp
r18235 r18236 169 169 170 170 int dim; 171 int *doflist = NULL;172 IssmDouble rholambda,un ;171 int *doflist = NULL; 172 IssmDouble rholambda,un,vx,vy,vz,sigmann; 173 173 IssmDouble bed_normal[3]; 174 IssmDouble *xyz_list_base = NULL; 174 175 175 176 /*Fetch number of nodes and dof for this finite element*/ 176 177 int numnodes = element->GetNumberOfNodes(); 177 int numnodessigma = element->NumberofNodes(P2Enum); 178 //int numnodessigma = element->NumberofNodes(P2Enum); 179 int numnodessigma; 180 if(dim==2) numnodessigma=3; 181 else numnodessigma=6; 178 182 element->FindParam(&dim,DomainDimensionEnum); 179 183 … … 196 200 197 201 /*Now compute sigmann if on base*/ 198 element->GetInputListOnNodes(&sigmann[0],SigmaNNEnum);199 200 202 if(element->IsOnBase()){ 201 203 202 element->NormalBase(&bed_normal[0],xyz_list_tria); 204 element->GetVerticesCoordinatesBase(&xyz_list_base); 205 element->NormalBase(&bed_normal[0],xyz_list_base); 203 206 element->FindParam(&rholambda,AugmentedLagrangianRholambdaEnum); 204 207 … … 207 210 gauss->GaussNode(P2Enum,i); 208 211 212 sigmann_input->GetInputValue(&sigmann, gauss); 209 213 vx_input->GetInputValue(&vx, gauss); 210 214 vy_input->GetInputValue(&vy, gauss); 211 un=bed_normal[0]*vx [i] + bed_normal[1]*vy[i];215 un=bed_normal[0]*vx + bed_normal[1]*vy; 212 216 if(dim==3){ 213 217 vz_input->GetInputValue(&vz, gauss); 214 un = un + bed_normal[2]*vz [i];218 un = un + bed_normal[2]*vz; 215 219 } 216 values[i] = sigmann[i] + rholambda*un; 217 } 218 } 219 element->AddInput(SigmaNNEnum,values,P2Enum)); 220 values[i] = sigmann + rholambda*un; 221 } 222 delete gauss; 223 xDelete<IssmDouble>(xyz_list_base); 224 } 225 element->AddInput(SigmaNNEnum,values,P2Enum); 220 226 221 227 /*Free ressources:*/ 222 delete gauss;223 228 xDelete<IssmDouble>(values); 224 xDelete<IssmDouble>(sigmann);225 229 xDelete<IssmDouble>(pressure); 226 230 xDelete<int>(doflist);
Note:
See TracChangeset
for help on using the changeset viewer.