Changeset 6347 for issm/trunk/src/c/objects/Elements/Tria.cpp
- Timestamp:
- 10/20/10 11:49:18 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Tria.cpp
r6260 r6347 1275 1275 int i,ig; 1276 1276 int doflist1[NUMVERTICES]; 1277 double thickness,Jdet ;1277 double thickness,Jdet,cm_noisedmp; 1278 1278 double l1l2l3[3]; 1279 double Dlambda[2]; 1279 double dbasis[NDOF2][NUMVERTICES]; 1280 double Dlambda[2],dp[2]; 1280 1281 double xyz_list[NUMVERTICES][3]; 1281 1282 double grade_g[NUMVERTICES] = {0.0}; … … 1287 1288 1288 1289 /*Retrieve all inputs we will be needing: */ 1290 this->parameters->FindParam(&cm_noisedmp,CmNoiseDmpEnum); 1289 1291 Input* adjoint_input=inputs->GetInput(AdjointEnum); ISSMASSERT(adjoint_input); 1290 1292 Input* thickness_input=inputs->GetInput(ThicknessEnum); ISSMASSERT(thickness_input); … … 1298 1300 GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss); 1299 1301 GetNodalFunctions(l1l2l3, gauss); 1302 GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss); 1300 1303 1301 1304 adjoint_input->GetParameterDerivativeValue(&Dlambda[0],&xyz_list[0][0],gauss); 1302 1305 thickness_input->GetParameterValue(&thickness, gauss); 1303 1304 for(i=0;i<NUMVERTICES;i++) grade_g[i]=thickness*Dlambda[0]*Jdet*gauss->weight*l1l2l3[i]; 1306 thickness_input->GetParameterDerivativeValue(&dp[0],&xyz_list[0][0],gauss); 1307 1308 for(i=0;i<NUMVERTICES;i++) grade_g[i]+=thickness*Dlambda[0]*Jdet*gauss->weight*l1l2l3[i]; 1309 1310 //noise dampening d/dki(1/2*(dk/dx)^2) 1311 for (i=0;i<NUMVERTICES;i++) grade_g[i]-=cm_noisedmp*Jdet*gauss->weight*(dbasis[0][i]*dp[0]+dbasis[1][i]*dp[1]); 1305 1312 } 1306 1313 … … 1317 1324 int i,ig; 1318 1325 int doflist1[NUMVERTICES]; 1319 double thickness,Jdet ;1326 double thickness,Jdet,cm_noisedmp; 1320 1327 double l1l2l3[3]; 1321 double Dlambda[2]; 1328 double dbasis[NDOF2][NUMVERTICES]; 1329 double Dlambda[2],dp[2]; 1322 1330 double xyz_list[NUMVERTICES][3]; 1323 1331 double grade_g[NUMVERTICES] = {0.0}; … … 1325 1333 1326 1334 /* Get node coordinates and dof list: */ 1335 this->parameters->FindParam(&cm_noisedmp,CmNoiseDmpEnum); 1327 1336 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1328 1337 GetDofList1(&doflist1[0]); … … 1338 1347 gauss->GaussPoint(ig); 1339 1348 1349 GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss); 1350 GetNodalFunctions(l1l2l3, gauss); 1351 GetNodalFunctionsDerivatives(&dbasis[0][0],&xyz_list[0][0],gauss); 1352 1340 1353 adjoint_input->GetParameterDerivativeValue(&Dlambda[0],&xyz_list[0][0],gauss); 1341 1354 thickness_input->GetParameterValue(&thickness, gauss); 1342 1343 GetJacobianDeterminant2d(&Jdet, &xyz_list[0][0],gauss); 1344 GetNodalFunctions(l1l2l3, gauss); 1345 1346 for(i=0;i<NUMVERTICES;i++) grade_g[i]=thickness*Dlambda[1]*Jdet*gauss->weight*l1l2l3[i]; 1355 thickness_input->GetParameterDerivativeValue(&dp[0],&xyz_list[0][0],gauss); 1356 1357 for(i=0;i<NUMVERTICES;i++) grade_g[i]+=thickness*Dlambda[1]*Jdet*gauss->weight*l1l2l3[i]; 1358 1359 //noise dampening d/dki(1/2*(dk/dx)^2) 1360 for (i=0;i<NUMVERTICES;i++) grade_g[i]-=cm_noisedmp*Jdet*gauss->weight*(dbasis[0][i]*dp[0]+dbasis[1][i]*dp[1]); 1347 1361 } 1348 1362
Note:
See TracChangeset
for help on using the changeset viewer.