[cig-commits] r19744 - in long/3D/SNAC/trunk/Snac/plugins: plastic_BI remesher_BI
echoi at geodynamics.org
echoi at geodynamics.org
Thu Mar 8 11:09:06 PST 2012
Author: echoi
Date: 2012-03-08 11:09:06 -0800 (Thu, 08 Mar 2012)
New Revision: 19744
Modified:
long/3D/SNAC/trunk/Snac/plugins/plastic_BI/Remesh.c
long/3D/SNAC/trunk/Snac/plugins/remesher_BI/RemeshElements.c
long/3D/SNAC/trunk/Snac/plugins/remesher_BI/makefile
Log:
Minor changes in the code and GSL dependency removed from makefile.
Modified: long/3D/SNAC/trunk/Snac/plugins/plastic_BI/Remesh.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/plastic_BI/Remesh.c 2012-03-08 19:01:49 UTC (rev 19743)
+++ long/3D/SNAC/trunk/Snac/plugins/plastic_BI/Remesh.c 2012-03-08 19:09:06 UTC (rev 19744)
@@ -58,9 +58,9 @@
Snac_Element* element = (Snac_Element*)ExtensionManager_At( context->mesh->elementExtensionMgr,
dstElements,
dstEltInd );
- SnacPlastic_Element* elementExt = ExtensionManager_Get( context->mesh->elementExtensionMgr,
- element,
- SnacPlastic_ElementHandle );
+ SnacPlastic_Element* elementExt = ExtensionManager_Get( context->mesh->elementExtensionMgr,
+ element,
+ SnacPlastic_ElementHandle );
Element_DomainIndex eltdI[8],eldI,eldJ,eldK;
Index coef_I;
Element_DomainIndex neldI = decomp->elementDomain3DCounts[0];
@@ -85,27 +85,54 @@
eldJ = (((srcEltInd-eldI)/neldI) % neldJ);
eldK = ((srcEltInd-eldI-eldJ*neldI)/(neldI*neldJ));
- /* Eight-node hex defined on the old barycenter grid. */
- eltdI[0] = eldI + eldJ*neldI + eldK*neldI*neldJ;
- eltdI[1] = (eldI+1) + eldJ*neldI + eldK*neldI*neldJ;
- eltdI[2] = (eldI+1) + (eldJ+1)*neldI + eldK*neldI*neldJ;
- eltdI[3] = eldI + (eldJ+1)*neldI + eldK*neldI*neldJ;
- eltdI[4] = eldI + eldJ*neldI + (eldK+1)*neldI*neldJ;
- eltdI[5] = (eldI+1) + eldJ*neldI + (eldK+1)*neldI*neldJ;
- eltdI[6] = (eldI+1) + (eldJ+1)*neldI + (eldK+1)*neldI*neldJ;
- eltdI[7] = eldI + (eldJ+1)*neldI + (eldK+1)*neldI*neldJ;
-
- elementExt->plasticStrain[dstTetInd] = 0.0;
- for(coef_I=0;coef_I<4;coef_I++) {
- /* The actual src elements are the four apexes of a tet (srcTetInd) in the old barycenter grid. */
- Snac_Element* srcElt = Snac_Element_At( context,
- meshExt->orderedToDomain[eltdI[TetraToNode[srcTetInd][coef_I]]] );
- SnacPlastic_Element* srcEltExt = ExtensionManager_Get(
- context->mesh->elementExtensionMgr,
- srcElt,
- SnacPlastic_ElementHandle );
- /* Weights are associated only with destination element but not on the tet level.
- So, "dstTetInd" is used in both source and destination terms. */
- elementExt->plasticStrain[dstTetInd] += meshExt->barcord[dstEltInd].L[coef_I]*srcEltExt->plasticStrain[dstTetInd];
+ /* Eight-node hex defined on the old barycenter grid. */
+ eltdI[0] = eldI + eldJ*neldI + eldK*neldI*neldJ;
+ eltdI[1] = (eldI+1) + eldJ*neldI + eldK*neldI*neldJ;
+ eltdI[2] = (eldI+1) + (eldJ+1)*neldI + eldK*neldI*neldJ;
+ eltdI[3] = eldI + (eldJ+1)*neldI + eldK*neldI*neldJ;
+ eltdI[4] = eldI + eldJ*neldI + (eldK+1)*neldI*neldJ;
+ eltdI[5] = (eldI+1) + eldJ*neldI + (eldK+1)*neldI*neldJ;
+ eltdI[6] = (eldI+1) + (eldJ+1)*neldI + (eldK+1)*neldI*neldJ;
+ eltdI[7] = eldI + (eldJ+1)*neldI + (eldK+1)*neldI*neldJ;
+
+ elementExt->plasticStrain[dstTetInd] = 0.0;
+ for(coef_I=0;coef_I<4;coef_I++) {
+ /* The actual src elements are the four apexes of a tet (srcTetInd) in the old barycenter grid. */
+ Snac_Element* srcElt = Snac_Element_At( context,
+ meshExt->orderedToDomain[eltdI[TetraToNode[srcTetInd][coef_I]]] );
+ SnacPlastic_Element* srcEltExt = ExtensionManager_Get(
+ context->mesh->elementExtensionMgr,
+ srcElt,
+ SnacPlastic_ElementHandle );
+ /* Weights are associated only with destination element but not on the tet level.
+ So, "dstTetInd" is used in both source and destination terms. */
+ elementExt->plasticStrain[dstTetInd] += meshExt->barcord[dstEltInd].L[coef_I]*srcEltExt->plasticStrain[dstTetInd];
+ }
+ break;
+ case xy:
+ /* Decompose srcEltInd into ijk indexes. */
+ eldI = (srcEltInd % neldI);
+ eldJ = (((srcEltInd-eldI)/neldI) % neldJ);
+
+ /* Eight-node hex defined on the old barycenter grid. */
+ eltdI[0] = eldI + eldJ*neldI;
+ eltdI[1] = (eldI+1) + eldJ*neldI;
+ eltdI[2] = (eldI+1) + (eldJ+1)*neldI;
+ eltdI[3] = eldI + (eldJ+1)*neldI;
+
+ elementExt->plasticStrain[dstTetInd] = 0.0;
+ for(coef_I=0;coef_I<3;coef_I++) {
+ /* The actual src elements are the four apexes of a tet (srcTetInd) in the old barycenter grid. */
+ Snac_Element* srcElt = Snac_Element_At( context,
+ meshExt->orderedToDomain[eltdI[TriToNode[srcTetInd][coef_I]]] );
+ SnacPlastic_Element* srcEltExt = ExtensionManager_Get(
+ context->mesh->elementExtensionMgr,
+ srcElt,
+ SnacPlastic_ElementHandle );
+ /* Weights are associated only with destination element but not on the tet level.
+ So, "dstTetInd" is used in both source and destination terms. */
+ elementExt->plasticStrain[dstTetInd] += meshExt->barcord[dstEltInd].L[coef_I]*srcEltExt->plasticStrain[dstTetInd];
+ }
+ break;
}
}
Modified: long/3D/SNAC/trunk/Snac/plugins/remesher_BI/RemeshElements.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/remesher_BI/RemeshElements.c 2012-03-08 19:01:49 UTC (rev 19743)
+++ long/3D/SNAC/trunk/Snac/plugins/remesher_BI/RemeshElements.c 2012-03-08 19:09:06 UTC (rev 19744)
@@ -125,18 +125,20 @@
Snac_Context* context = (Snac_Context*)_context;
Element_LocalIndex element_lI;
- /* if(context->rank==13) { */
- /* fprintf(stderr,"Looking %d (ijk:%d/%d %d/%d %d/%d)\n",element_lI,ellI,nellI-1,ellJ,nellJ-1,ellK,nellK-1); */
- /* fprintf(stderr," %d to %d/%d %d to %d/%d %d to %d/%d)\n",mindI,maxdI,neldI-1,mindJ,maxdJ,neldJ-1,mindK,maxdK,neldK-1); */
- /* } */
- for( eldK = mindK; eldK < maxdK; eldK++ ) {
- for( eldJ = mindJ; eldJ < maxdJ; eldJ++ ) {
- for( eldI = mindI; eldI < maxdI; eldI++ ) {
- element_dI = eldI+eldJ*neldI+eldK*neldI*neldJ;
- for(tet_I=0;tet_I<5;tet_I++) {
- Index coef_I;
- double lambda[4];
- double tol_error = 1e-12;
+ /* Update all the elements, and in the process work out this processor's minLengthScale */
+ for( element_lI = 0; element_lI < context->mesh->elementLocalCount; element_lI++ ) {
+ double elementMinLengthScale;
+
+ KeyCall( context, context->updateElementK, Snac_UpdateElementMomentum_CallCast* )
+ ( KeyHandle(context,context->updateElementK),
+ context,
+ element_lI,
+ &elementMinLengthScale );
+ if( elementMinLengthScale < context->minLengthScale ) {
+ context->minLengthScale = elementMinLengthScale;
+ }
+ }
+}
/*
Modified: long/3D/SNAC/trunk/Snac/plugins/remesher_BI/makefile
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/remesher_BI/makefile 2012-03-08 19:01:49 UTC (rev 19743)
+++ long/3D/SNAC/trunk/Snac/plugins/remesher_BI/makefile 2012-03-08 19:09:06 UTC (rev 19744)
@@ -48,6 +48,6 @@
EXTERNAL_LIBS = -L${STGERMAIN_LIBDIR} -lSnac -lStGermain
EXTERNAL_INCLUDES = -I${STGERMAIN_INCDIR}/StGermain -I${STGERMAIN_INCDIR}
-packages = MPI XML MATH GSL
+packages = MPI XML MATH
include ${PROJ_ROOT}/Makefile.vmake
More information about the CIG-COMMITS
mailing list