[cig-commits] r13677 - in long/3D/Gale/trunk: . src/PICellerator/Utils/src
walter at geodynamics.org
walter at geodynamics.org
Sat Dec 13 03:57:51 PST 2008
Author: walter
Date: 2008-12-13 03:57:50 -0800 (Sat, 13 Dec 2008)
New Revision: 13677
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.c
long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.h
Log:
r2432 at dante: boo | 2008-12-13 02:16:33 -0800
Add HydrostaticTerm to BuoyancyForceTerm
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2429
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2432
Modified: long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.c
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.c 2008-12-13 10:16:26 UTC (rev 13676)
+++ long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.c 2008-12-13 11:57:50 UTC (rev 13677)
@@ -53,6 +53,7 @@
#include "types.h"
#include "BuoyancyForceTerm.h"
+#include "HydrostaticTerm.h"
#include "MaterialSwarmVariable.h"
#include <assert.h>
@@ -107,18 +108,19 @@
FeVariable* temperatureField,
double gravity,
Bool adjust,
- Materials_Register* materials_Register )
+ Materials_Register* materials_Register,
+ HydrostaticTerm* hydrostaticTerm )
{
BuoyancyForceTerm* self = (BuoyancyForceTerm*) _BuoyancyForceTerm_DefaultNew( name );
- BuoyancyForceTerm_InitAll(
- self,
- forceVector,
- integrationSwarm,
- temperatureField,
- gravity,
- adjust,
- materials_Register );
+ BuoyancyForceTerm_InitAll(self,
+ forceVector,
+ integrationSwarm,
+ temperatureField,
+ gravity,
+ adjust,
+ materials_Register,
+ hydrostaticTerm);
return self;
}
@@ -170,13 +172,15 @@
FeVariable* temperatureField,
double gravity,
Bool adjust,
- Materials_Register* materials_Register )
+ Materials_Register* materials_Register,
+ HydrostaticTerm* hydrostaticTerm )
{
self->temperatureField = temperatureField;
self->gravity = gravity;
self->gHat = NULL;
self->adjust = adjust;
self->materials_Register = materials_Register;
+ self->hydrostaticTerm = hydrostaticTerm;
}
void BuoyancyForceTerm_InitAll(
@@ -186,13 +190,14 @@
FeVariable* temperatureField,
double gravity,
Bool adjust,
- Materials_Register* materials_Register )
+ Materials_Register* materials_Register,
+ HydrostaticTerm* hydrostaticTerm )
{
BuoyancyForceTerm* self = (BuoyancyForceTerm*) forceTerm;
ForceTerm_InitAll( self, forceVector, integrationSwarm, NULL );
- _BuoyancyForceTerm_Init( self, temperatureField,
- gravity, adjust, materials_Register );
+ _BuoyancyForceTerm_Init( self, temperatureField, gravity, adjust,
+ materials_Register, hydrostaticTerm );
}
void _BuoyancyForceTerm_Delete( void* forceTerm ) {
@@ -251,6 +256,8 @@
Dictionary_Entry_Value* direcList;
double* direc;
unsigned d_i;
+ HydrostaticTerm* hydrostaticTerm;
+
/* Construct Parent */
_ForceTerm_Construct( self, cf, data );
@@ -283,8 +290,10 @@
materials_Register = Stg_ObjectList_Get( cf->registerRegister, "Materials_Register" );
assert( materials_Register );
- _BuoyancyForceTerm_Init( self, temperatureField,
- gravity, adjust, materials_Register );
+ hydrostaticTerm = Stg_ComponentFactory_ConstructByKey( cf, self->name, "HydrostaticTerm", HydrostaticTerm, False, data ) ;
+
+ _BuoyancyForceTerm_Init( self, temperatureField, gravity, adjust,
+ materials_Register, hydrostaticTerm );
}
void _BuoyancyForceTerm_Build( void* forceTerm, void* data ) {
@@ -443,8 +452,16 @@
if ( temperatureField )
FeVariable_InterpolateWithinElement( temperatureField, lElement_I, xi, &temperature );
- FeMesh_CoordLocalToGlobal(mesh, cell_I, xi, coord);
- background_density=DensityFunction(coord);
+ if(self->hydrostaticTerm)
+ {
+ double density_temp=DensityFunction(coord);
+
+ FeMesh_CoordLocalToGlobal(mesh, cell_I, xi, coord);
+ background_density=HydrostaticTerm_Density(self->hydrostaticTerm,coord);
+
+ if(fabs(density_temp-background_density)/density_temp>1.0e-12)
+ printf("density %g %g\n",density_temp,background_density);
+ }
material =
IntegrationPointsSwarm_GetMaterialOn( (IntegrationPointsSwarm*) swarm,
Modified: long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.h
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.h 2008-12-13 10:16:26 UTC (rev 13676)
+++ long/3D/Gale/trunk/src/PICellerator/Utils/src/BuoyancyForceTerm.h 2008-12-13 11:57:50 UTC (rev 13677)
@@ -75,7 +75,8 @@
ExtensionInfo_Index materialExtHandle; \
MaterialSwarmVariable** densitySwarmVariables; \
MaterialSwarmVariable** alphaSwarmVariables; \
- Index materialSwarmCount;
+ Index materialSwarmCount; \
+ HydrostaticTerm* hydrostaticTerm;
struct BuoyancyForceTerm { __BuoyancyForceTerm };
@@ -86,7 +87,8 @@
FeVariable* temperatureField,
double gravity,
Bool adjust,
- Materials_Register* materials_Register );
+ Materials_Register* materials_Register,
+ HydrostaticTerm* hydrostaticTerm);
BuoyancyForceTerm* _BuoyancyForceTerm_New(
SizeT sizeOfSelf,
@@ -111,7 +113,8 @@
FeVariable* temperatureField,
double gravity,
Bool adjust,
- Materials_Register* materials_Register );
+ Materials_Register* materials_Register,
+ HydrostaticTerm* hydrostaticTerm );
void _BuoyancyForceTerm_Delete( void* forceTerm );
void _BuoyancyForceTerm_Print( void* forceTerm, Stream* stream );
More information about the CIG-COMMITS
mailing list