[cig-commits] r3927 - in long/3D/Gale/trunk/src/PICellerator: .
Apps/PIC_Components MaterialPoints/src
walter at geodynamics.org
walter at geodynamics.org
Thu Jul 6 02:03:50 PDT 2006
Author: walter
Date: 2006-07-06 02:03:50 -0700 (Thu, 06 Jul 2006)
New Revision: 3927
Modified:
long/3D/Gale/trunk/src/PICellerator/
long/3D/Gale/trunk/src/PICellerator/Apps/PIC_Components/MaterialPointSwarm.xml
long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.c
long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.h
long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.c
long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.h
Log:
r417 at earth: boo | 2006-07-06 02:00:47 -0700
r406 at earth (orig r345): PatrickSunter | 2006-07-03 22:01:44 -0700
* Modified the SwarmAdvector classes to conform to the new TimeIntegratee
interface that allows the possibility of fallback to first order.
* Modified the MaterialPointSwarm.xml model set-up file to set
allowFallbackToFirstOrder to be true, so extensional/outflow PIC problems
can use 2nd-order integration.
Property changes on: long/3D/Gale/trunk/src/PICellerator
___________________________________________________________________
Name: svk:merge
- 00de75e2-39f1-0310-8538-9683d00a49cc:/trunk:344
aee11096-cf10-0410-a191-eea5772ba81f:/cig:416
+ 00de75e2-39f1-0310-8538-9683d00a49cc:/trunk:345
aee11096-cf10-0410-a191-eea5772ba81f:/cig:417
Modified: long/3D/Gale/trunk/src/PICellerator/Apps/PIC_Components/MaterialPointSwarm.xml
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/Apps/PIC_Components/MaterialPointSwarm.xml 2006-07-06 09:03:47 UTC (rev 3926)
+++ long/3D/Gale/trunk/src/PICellerator/Apps/PIC_Components/MaterialPointSwarm.xml 2006-07-06 09:03:50 UTC (rev 3927)
@@ -23,6 +23,11 @@
<param name="Type">DiscreteVoronoiWeights</param>
<param name="DiscreteVoronoi">discreteVoronoi</param>
</struct>
+ <!--
+ <struct name="weights">
+ <param name="Type">ConstantWeights</param>
+ </struct>
+ -->
<struct name="localLayout">
<param name="Type">MappedParticleLayout</param>
</struct>
@@ -61,6 +66,9 @@
<param name="TimeIntegrator">timeIntegrator</param>
<param name="VelocityField">VelocityField</param>
<param name="PeriodicBCsManager">periodicBCsManager</param>
+ <!-- For moving mesh or problems involving outflow, need the following
+ enabled -->
+ <param name="allowFallbackToFirstOrder">True</param>
</struct>
</struct>
Modified: long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.c
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.c 2006-07-06 09:03:47 UTC (rev 3926)
+++ long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.c 2006-07-06 09:03:50 UTC (rev 3927)
@@ -70,13 +70,15 @@
Name name,
TimeIntegrator* timeIntegrator,
FeVariable* velocityField,
+ Bool allowFallbackToFirstOrder,
MaterialPointsSwarm* swarm,
PeriodicBoundariesManager* periodicBCsManager )
{
SwarmAdvector* self = (SwarmAdvector*) _SwarmAdvector_DefaultNew( name );
/* SwarmAdvector_InitAll */
- _TimeIntegratee_Init( self, timeIntegrator, swarm->particleCoordVariable->variable, 0, NULL );
+ _TimeIntegratee_Init( self, timeIntegrator, swarm->particleCoordVariable->variable, 0, NULL,
+ allowFallbackToFirstOrder );
_SwarmAdvector_Init( self, velocityField, swarm, periodicBCsManager );
return self;
@@ -252,7 +254,7 @@
_TimeIntegratee_Destroy( self, data );
}
-void _SwarmAdvector_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) {
+Bool _SwarmAdvector_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) {
SwarmAdvector* self = (SwarmAdvector*) swarmAdvector;
FieldVariable* velocityField = (FieldVariable*) self->velocityField;
double* coord;
@@ -263,21 +265,24 @@
result = FieldVariable_InterpolateValueAt( velocityField, coord, timeDeriv );
- #if DEBUG
if ( result == OTHER_PROC || result == OUTSIDE_GLOBAL || isinf(timeDeriv[0]) || isinf(timeDeriv[1]) ||
( self->swarm->dim == 3 && isinf(timeDeriv[2]) ) )
{
+ #if 0
Journal_Printf( Journal_Register( Error_Type, self->type ),
"Error in func '%s' for particle with index %u.\n\tPosition (%g, %g, %g)\n\tVelocity here is (%g, %g, %g)."
"\n\tInterpolation result is %s.\n",
__func__, array_I, coord[0], coord[1], coord[2],
timeDeriv[0], timeDeriv[1], ( self->swarm->dim == 3 ? timeDeriv[2] : 0.0 ),
InterpolationResultToStringMap[result] );
- abort();
+ #endif
+ return False;
}
- #endif
+
+ return True;
}
+
void _SwarmAdvector_Intermediate( void* swarmAdvector, Index lParticle_I ) {
SwarmAdvector* self = (SwarmAdvector*) swarmAdvector;
Modified: long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.h
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.h 2006-07-06 09:03:47 UTC (rev 3926)
+++ long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvector.h 2006-07-06 09:03:50 UTC (rev 3927)
@@ -75,6 +75,7 @@
Name name,
TimeIntegrator* timeIntegrator,
FeVariable* velocityField,
+ Bool allowFallbackToFirstOrder,
MaterialPointsSwarm* swarm,
PeriodicBoundariesManager* periodicBCsManager );
@@ -114,7 +115,7 @@
void _SwarmAdvector_Initialise( void* materialSwarm, void* data ) ;
void _SwarmAdvector_Execute( void* materialSwarm, void* data );
void _SwarmAdvector_Destroy( void* materialSwarm, void* data ) ;
- void _SwarmAdvector_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) ;
+ Bool _SwarmAdvector_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) ;
void _SwarmAdvector_Intermediate( void* swarmAdvector, Index array_I ) ;
Modified: long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.c
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.c 2006-07-06 09:03:47 UTC (rev 3926)
+++ long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.c 2006-07-06 09:03:50 UTC (rev 3927)
@@ -71,13 +71,15 @@
Name name,
TimeIntegrator* timeIntegrator,
FeVariable* velocityField,
+ Bool allowFallbackToFirstOrder,
MaterialPointsSwarm* swarm,
PeriodicBoundariesManager* periodicBCsManager )
{
SwarmAdvectorD* self = (SwarmAdvectorD*) _SwarmAdvectorD_DefaultNew( name );
/* SwarmAdvectorD_InitAll */
- _TimeIntegratee_Init( self, timeIntegrator, swarm->particleCoordVariable->variable, 0, NULL );
+ _TimeIntegratee_Init( self, timeIntegrator, swarm->particleCoordVariable->variable, 0, NULL,
+ allowFallbackToFirstOrder );
_SwarmAdvector_Init( (SwarmAdvector*)self, velocityField, swarm, periodicBCsManager );
_SwarmAdvectorD_Init( self );
@@ -194,7 +196,7 @@
}
-void _SwarmAdvectorD_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) {
+Bool _SwarmAdvectorD_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) {
SwarmAdvectorD* self = (SwarmAdvectorD*) swarmAdvector;
FieldVariable* velocityField = (FieldVariable*) self->velocityField;
double* coord;
@@ -207,10 +209,10 @@
timeDeriv[ K_AXIS ] = 0.0;
- #if DEBUG
if ( result == OTHER_PROC || result == OUTSIDE_GLOBAL || isinf(timeDeriv[0]) || isinf(timeDeriv[1]) ||
( self->swarm->dim == 3 && isinf(timeDeriv[2]) ) )
{
+ #if 0
Journal_Printf( Journal_Register( Error_Type, self->type ),
"Error in func '%s' for particle with index %u.\n\tPosition (%g, %g, %g)\n\tVelocity here is (%g, %g, %g)."
"\n\tInteropolation result is %u.\n",
@@ -218,8 +220,12 @@
timeDeriv[0], timeDeriv[1], ( self->swarm->dim == 3 ? timeDeriv[2] : 0.0 ),
result );
abort();
+ #endif
+
+ return False;
}
- #endif
+
+ return True;
}
/*-------------------------------------------------------------------------------------------------------------------------
Modified: long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.h
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.h 2006-07-06 09:03:47 UTC (rev 3926)
+++ long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorD.h 2006-07-06 09:03:50 UTC (rev 3927)
@@ -72,6 +72,7 @@
Name name,
TimeIntegrator* timeIntegrator,
FeVariable* velocityField,
+ Bool allowFallbackToFirstOrder,
MaterialPointsSwarm* swarm,
PeriodicBoundariesManager* periodicBCsManager );
@@ -108,7 +109,7 @@
void _SwarmAdvectorD_Initialise( void* materialSwarm, void* data ) ;
void _SwarmAdvectorD_Execute( void* materialSwarm, void* data );
void _SwarmAdvectorD_Destroy( void* materialSwarm, void* data ) ;
- void _SwarmAdvectorD_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) ;
+ Bool _SwarmAdvectorD_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) ;
void _SwarmAdvectorD_Intermediate( void* swarmAdvector, Index array_I ) ;
More information about the cig-commits
mailing list