[cig-commits] r15648 - long/3D/SNAC/trunk/Snac/plugins/conditionFunctions
echoi at geodynamics.org
echoi at geodynamics.org
Fri Sep 4 10:14:16 PDT 2009
Author: echoi
Date: 2009-09-04 10:14:16 -0700 (Fri, 04 Sep 2009)
New Revision: 15648
Modified:
long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/Register.c
long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.c
long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.h
Log:
Added one more example of element condition function that assignes phase index to each element. Details will be added to the manual with a walkthrough for adding a new function.
Modified: long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/Register.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/Register.c 2009-09-04 16:59:34 UTC (rev 15647)
+++ long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/Register.c 2009-09-04 17:14:16 UTC (rev 15648)
@@ -75,6 +75,9 @@
ConditionFunction_New(_SnacCondFunc_AssignPhaseID,"SnacCF_AssignPhaseID" ) );
ConditionFunction_Register_Add(
context->condFunc_Register,
+ ConditionFunction_New(_SnacCondFunc_DeadSea,"SnacCF_DeadSea" ) );
+ ConditionFunction_Register_Add(
+ context->condFunc_Register,
ConditionFunction_New( _SnacCondFunc_MaxwellBenchmark,"SnacCF_MaxwellBenchmark" ) );
ConditionFunction_Register_Add(
context->condFunc_Register,
Modified: long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.c
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.c 2009-09-04 16:59:34 UTC (rev 15647)
+++ long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.c 2009-09-04 17:14:16 UTC (rev 15648)
@@ -67,3 +67,42 @@
else
(*material_I) = 0;
}
+
+void _SnacCondFunc_DeadSea( Index element_lI, Variable_Index var_I, void* _context, void* result ){
+ Snac_Context* context = (Snac_Context*)_context;
+ Snac_Element* element = Snac_Element_At( context, element_lI );
+ Material_Index* material_I = (Material_Index*)result;
+
+ /* Stuff for convenience */
+ Mesh* mesh = context->mesh;
+ MeshLayout* layout = (MeshLayout*)mesh->layout;
+ HexaMD* decomp = (HexaMD*)layout->decomp;
+ IJK ijk;
+ Element_GlobalIndex global_I_range = decomp->elementGlobal3DCounts[0];
+ Element_GlobalIndex global_K_range = decomp->elementGlobal3DCounts[2];
+
+ Element_GlobalIndex element_gI = _MeshDecomp_Element_LocalToGlobal1D( decomp, element_lI );
+ unsigned int matID=0, tetra_I;
+
+ RegularMeshUtils_Element_1DTo3D( decomp, element_gI, &ijk[0], &ijk[1], &ijk[2] );
+
+ if( (ijk[0] < (global_I_range-ijk[2])) &&
+ (ijk[2] < global_K_range/4) )
+ matID=1;
+ if((ijk[0]==(global_I_range-ijk[2]-1)) &&
+ (ijk[2] < (global_K_range/4)) )
+ matID=2;
+ if( (ijk[0]==global_I_range/2) &&
+ (ijk[2]>=global_K_range/4) )
+ matID=2;
+ if( ((ijk[0]>=global_I_range/2)&&(ijk[0]<=global_I_range*3/4))
+ &&
+ (ijk[2]==global_K_range/4) )
+ matID=2;
+
+ (*material_I)=matID;
+
+ for( tetra_I = 0; tetra_I < Tetrahedra_Count; tetra_I++ ) {
+ element->tetra[tetra_I].material_I=matID;
+ }
+}
Modified: long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.h
===================================================================
--- long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.h 2009-09-04 16:59:34 UTC (rev 15647)
+++ long/3D/SNAC/trunk/Snac/plugins/conditionFunctions/SnacCondFunc_ElementCondFunc.h 2009-09-04 17:14:16 UTC (rev 15648)
@@ -47,4 +47,9 @@
void* context,
void* result );
+ void _SnacCondFunc_DeadSea(
+ Element_LocalIndex element_lI,
+ Variable_Index var_I,
+ void* context,
+ void* result );
#endif
More information about the CIG-COMMITS
mailing list