[cig-commits] commit: Make ConditionFunctions take a coord, not a node index. This allows
Mercurial
hg at geodynamics.org
Sun Oct 16 05:41:40 PDT 2011
changeset: 808:e0b482223187
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Sun Oct 16 05:39:40 2011 -0700
files: Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.cxx Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.cxx Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.cxx Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.cxx Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.cxx Discretisation/src/FieldTest.h SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.cxx SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.cxx SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx plugins/StandardConditionFunctions/StandardConditionFunctions.cxx plugins/StandardConditionFunctions/StandardConditionFunctions.h
description:
Make ConditionFunctions take a coord, not a node index. This allows
us to integrate them at points that are not at the nodes. This was
required to get Q2 elements working. I had to delete the SpectralBC
Standard condition functions to make this work.
diff -r 5577e2b0ce09 -r e0b482223187 Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx
--- a/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -71,16 +71,9 @@ void AdvDiffSteadyState1D_TemperatureFun
*temperature = self->A * exp( exponent ) + self->B;
}
-void AdvDiffSteadyState1D_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* temperature ){
+void AdvDiffSteadyState1D_TemperatureBC(const double *coord, void* _context, void* temperature ){
DomainContext* context = (DomainContext*)_context;
AdvDiffSteadyState1D* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
- double* coord;
-
- feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
AdvDiffSteadyState1D_TemperatureFunction( self, NULL, coord, temperature );
}
diff -r 5577e2b0ce09 -r e0b482223187 Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.cxx
--- a/Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/EnergySolver/tests/CosineHillRotate/CosineHillRotate.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -53,7 +53,8 @@ typedef struct {
Coord rotationCentre;
} CosineHillRotate;
-void CosineHillRotate_TemperatureFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* temperature ) {
+void CosineHillRotate_TemperatureFunction( void* analyticSolution, FeVariable* analyticFeVariable,
+ const double* coord, double* temperature ) {
CosineHillRotate *self = (CosineHillRotate*)analyticSolution;
double distanceFromCentre = StGermain_DistanceBetweenPoints( self->rotationCentre, coord, 2 );
@@ -63,17 +64,13 @@ void CosineHillRotate_TemperatureFunctio
*temperature = 0.0;
}
-void CosineHillRotate_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void CosineHillRotate_TemperatureBC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
CosineHillRotate* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)CosineHillRotate_Type, CosineHillRotate, True, 0 );
FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
CosineHillRotate_TemperatureFunction( self, feVariable, coord, result );
}
diff -r 5577e2b0ce09 -r e0b482223187 Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.cxx
--- a/Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/EnergySolver/tests/HomogeneousEssentialBCs/HomogeneousEssentialBCs.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -52,7 +52,7 @@ typedef struct {
} HomogeneousEssentialBCs;
-void HomogeneousEssentialBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void HomogeneousEssentialBCs_Velocity_SkewToMesh(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
HomogeneousEssentialBCs* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousEssentialBCs_Type, HomogeneousEssentialBCs, True, 0 );
double* result = (double*) _result;
@@ -76,17 +76,13 @@ void HomogeneousEssentialBCs_Temperature
}
}
-void HomogeneousEssentialBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void HomogeneousEssentialBCs_TemperatureBC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
HomogeneousEssentialBCs* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousEssentialBCs_Type, HomogeneousEssentialBCs, True, 0 );
FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
HomogeneousEssentialBCs_TemperatureFunction( self, feVariable, coord, result );
}
diff -r 5577e2b0ce09 -r e0b482223187 Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx
--- a/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -52,7 +52,7 @@ typedef struct {
} HomogeneousNaturalBCs;
-void HomogeneousNaturalBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void HomogeneousNaturalBCs_Velocity_SkewToMesh(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
HomogeneousNaturalBCs* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
double* result = (double*) _result;
@@ -62,7 +62,7 @@ void HomogeneousNaturalBCs_Velocity_Skew
}
-void HomogeneousNaturalBCs_TemperatureFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* temperature ) {
+void HomogeneousNaturalBCs_TemperatureFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* temperature ) {
HomogeneousNaturalBCs *self = (HomogeneousNaturalBCs*)analyticSolution;
if ( coord[ J_AXIS ] < tan( self->angle ) * coord[ I_AXIS ] + 0.25 )
@@ -71,17 +71,13 @@ void HomogeneousNaturalBCs_TemperatureFu
*temperature = 0.0;
}
-void HomogeneousNaturalBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void HomogeneousNaturalBCs_TemperatureBC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
HomogeneousNaturalBCs* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
HomogeneousNaturalBCs_TemperatureFunction( self, feVariable, coord, result );
}
diff -r 5577e2b0ce09 -r e0b482223187 Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx
--- a/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -76,7 +76,7 @@ void LidDrivenIsoviscousAnalytic_Calcula
self->D = - ( 2.0 * n * M_PI * e_2nPI - e_2nPI + 1.0 ) * e_nPI / E;
}
-void LidDrivenIsoviscousAnalytic_VelocityFunction( void* codelet, double* coord, double* velocity ) {
+void LidDrivenIsoviscousAnalytic_VelocityFunction( void* codelet, const double* coord, double* velocity ) {
LidDrivenIsoviscousAnalytic *self = (LidDrivenIsoviscousAnalytic*)codelet;
double x,y;
double n;
@@ -101,7 +101,7 @@ void LidDrivenIsoviscousAnalytic_Velocit
+ ( B + D * y ) * exp( - n * M_PI * y ) );
}
-void LidDrivenIsoviscousAnalytic_PressureFunction( void* codelet, double* coord, double* pressure ) {
+void LidDrivenIsoviscousAnalytic_PressureFunction( void* codelet, const double* coord, double* pressure ) {
LidDrivenIsoviscousAnalytic *self = (LidDrivenIsoviscousAnalytic*)codelet;
double x,y;
double n;
diff -r 5577e2b0ce09 -r e0b482223187 Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.cxx
--- a/Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/StokesMomentumUzawa/tests/LidDrivenStokesAnalytic/LidDrivenStokesAnalytic.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -78,7 +78,7 @@ void StgFEM_LidDrivenStokesAnalytic_Calc
self->D = - ( 2.0 * n * M_PI * e_2nPI - e_2nPI + 1.0 ) * e_nPI / E;
}
-void StgFEM_LidDrivenStokesAnalytic_VelocityFunction( void* data, double* coord, double* velocity ) {
+void StgFEM_LidDrivenStokesAnalytic_VelocityFunction( void* data, const double* coord, double* velocity ) {
StgFEM_LidDrivenStokesAnalytic* self = (StgFEM_LidDrivenStokesAnalytic*)data;
double x,y;
double n;
@@ -103,15 +103,13 @@ void StgFEM_LidDrivenStokesAnalytic_Velo
}
-void StgFEM_LidDrivenStokesAnalytic_PressureFunction( void* data, double* coord, double* pressure ) {
+void StgFEM_LidDrivenStokesAnalytic_PressureFunction( void* data, const double* coord, double* pressure ) {
StgFEM_LidDrivenStokesAnalytic* self = (StgFEM_LidDrivenStokesAnalytic*)data;
double x,y;
double n;
- double A, B, C, D;
+ double C, D;
n = (double)self->n;
- A = self->A;
- B = self->B;
C = self->C;
D = self->D;
@@ -125,13 +123,13 @@ void _StgFEM_LidDrivenStokesAnalytic_Ass
void _StgFEM_LidDrivenStokesAnalytic_AssignFromXML( void* codelet, Stg_ComponentFactory* cf, void* data ) {
StgFEM_LidDrivenStokesAnalytic *self = (StgFEM_LidDrivenStokesAnalytic*)codelet;
- unsigned int* waveSpeed;
+ uint waveSpeed;
_FieldTest_AssignFromXML( self, cf, data );
/* Set constants */
- *waveSpeed = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"sinusoidalLidWavenumber", 1 );
- self->n = *waveSpeed;
+ waveSpeed = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, (Dictionary_Entry_Key)"sinusoidalLidWavenumber", 1 );
+ self->n = waveSpeed;
StgFEM_LidDrivenStokesAnalytic_CalculateConstants( (FieldTest*)self );
}
diff -r 5577e2b0ce09 -r e0b482223187 Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx
--- a/Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/StokesMomentumUzawa/tests/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -110,7 +110,7 @@ void LinearVelocityAnalytic_GetCornerNod
}
}
-void GetLocalCoords( LinearVelocityAnalytic* self, double* coord, double* xi ) {
+void GetLocalCoords( LinearVelocityAnalytic* self, const double* coord, double* xi ) {
FeVariable* velocityField = self->velocityField;
XYZ min;
XYZ max;
@@ -124,7 +124,7 @@ void GetLocalCoords( LinearVelocityAnaly
}
/* Do a normal linear interpolation as if the box were a FEM element */
-void LinearVelocityAnalytic_VelocityFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* velocity ) {
+void LinearVelocityAnalytic_VelocityFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* velocity ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
FeVariable* velocityField = self->velocityField;
FeMesh* mesh = velocityField->feMesh;
@@ -151,11 +151,11 @@ void LinearVelocityAnalytic_VelocityFunc
}
}
}
-void LinearVelocityAnalytic_PressureFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* pressure ) {
+void LinearVelocityAnalytic_PressureFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* pressure ) {
*pressure = 0.0;
}
-void LinearVelocityAnalytic_VelocityGradientsFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* velocityGradients ) {
+void LinearVelocityAnalytic_VelocityGradientsFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* velocityGradients ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
FeVariable* velocityField = self->velocityField;
FeMesh* mesh = velocityField->feMesh;
@@ -295,7 +295,7 @@ void LinearVelocityAnalytic_VelocityGrad
Memory_Free( GNx );
}
-void LinearVelocityAnalytic_StrainRateFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* strainRate ) {
+void LinearVelocityAnalytic_StrainRateFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* strainRate ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
Dimension_Index dim = self->velocityField->dim;
TensorArray velocityGradients;
@@ -307,7 +307,7 @@ void LinearVelocityAnalytic_StrainRateFu
TensorArray_GetSymmetricPart( velocityGradients, dim, strainRate );
}
-void LinearVelocityAnalytic_StrainRateInvFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* strainRateInv ) {
+void LinearVelocityAnalytic_StrainRateInvFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* strainRateInv ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
Dimension_Index dim = self->velocityField->dim;
SymmetricTensor strainRate;
diff -r 5577e2b0ce09 -r e0b482223187 Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.cxx
--- a/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -51,7 +51,7 @@ const Type LinearTemperatureField_Type =
typedef struct { __AnalyticSolution FeVariable* temperatureField; } LinearTemperatureField;
-void LinearTemperatureField_TemperatureFunction( void* analyticSolution, FeVariable* analyticFeVariable, double* coord, double* value ) {
+void LinearTemperatureField_TemperatureFunction( void* analyticSolution, FeVariable* analyticFeVariable, const double* coord, double* value ) {
*value = 1.0 - coord[ J_AXIS ];
}
diff -r 5577e2b0ce09 -r e0b482223187 Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.cxx
--- a/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -68,7 +68,7 @@ typedef struct {
* Shijie Zhong. Analytic solutions for Stokes' flow with lateral variations in viscosity. Geophys. J. Int., 124:18-28, 1996.
* All equations refer to this paper */
-void ColumnViscosityAnalytic_TemperatureIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void ColumnViscosityAnalytic_TemperatureIC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* temperatureField = (FeVariable*) FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
FeMesh* mesh = temperatureField->feMesh;
@@ -84,9 +84,6 @@ void ColumnViscosityAnalytic_Temperature
double L;
double min[3], max[3];
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
-
/* Make sure that the box has right dimensions */
Mesh_GetGlobalCoordRange( mesh, min, max );
assert( ( max[ J_AXIS ] - min[ J_AXIS ] - 1.0 ) < SMALL );
diff -r 5577e2b0ce09 -r e0b482223187 Discretisation/src/FieldTest.h
--- a/Discretisation/src/FieldTest.h Sun Oct 16 05:35:21 2011 -0700
+++ b/Discretisation/src/FieldTest.h Sun Oct 16 05:39:40 2011 -0700
@@ -56,7 +56,7 @@
double value[9];
} Event;
- typedef void (FieldTest_AnalyticSolutionFunc) ( void* fieldTest, double* coord, double* value );
+ typedef void (FieldTest_AnalyticSolutionFunc) ( void* fieldTest, const double* coord, double* value );
typedef Bool (FieldTest_ExpectedResultFunc) ( void** data, void* context, Event* expected, Event* numeric, Event* tolerance );
/** Textual name of this class */
@@ -83,7 +83,7 @@
/* constant to add to analytic element integral */ \
/* normalising by this so you dont get divide by zero issues */ \
double epsilon; \
- int testTimestep; /** the timestep to run the test */ \
+ uint testTimestep; /** the timestep to run the test */ \
double** gAnalyticSq; \
double** gErrorSq; \
double** gError; \
diff -r 5577e2b0ce09 -r e0b482223187 SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx
--- a/SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/SysTest/AnalyticPlugins/AdvDiffSteadyState1D/AdvDiffSteadyState1D.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -62,7 +62,7 @@ typedef struct {
FeVariable* temperatureField;
} AdvDiffSteadyState1D;
-void AdvDiffSteadyState1D_TemperatureFunction( void* analyticSolution, double* coord, double* temperature ) {
+void AdvDiffSteadyState1D_TemperatureFunction( void* analyticSolution, const double* coord, double* temperature ) {
AdvDiffSteadyState1D* self = (AdvDiffSteadyState1D*)analyticSolution;
double exponent;
double kappa = self->residual->defaultDiffusivity;
@@ -71,16 +71,9 @@ void AdvDiffSteadyState1D_TemperatureFun
*temperature = self->A * exp( exponent ) + self->B;
}
-void AdvDiffSteadyState1D_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* temperature ){
+void AdvDiffSteadyState1D_TemperatureBC(const double *coord, void* _context, void* temperature ){
DomainContext* context = (DomainContext*)_context;
AdvDiffSteadyState1D* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
- double* coord;
-
- feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
AdvDiffSteadyState1D_TemperatureFunction( self, coord, (double*)temperature );
}
diff -r 5577e2b0ce09 -r e0b482223187 SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.cxx
--- a/SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/SysTest/AnalyticPlugins/CosineHillRotate/CosineHillRotate.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -53,7 +53,7 @@ typedef struct {
Coord rotationCentre;
} CosineHillRotate;
-void CosineHillRotate_TemperatureFunction( void* analyticSolution, double* coord, double* temperature ) {
+void CosineHillRotate_TemperatureFunction( void* analyticSolution, const double* coord, double* temperature ) {
CosineHillRotate *self = (CosineHillRotate*)analyticSolution;
double distanceFromCentre = StGermain_DistanceBetweenPoints( self->rotationCentre, coord, 2 );
@@ -63,18 +63,11 @@ void CosineHillRotate_TemperatureFunctio
*temperature = 0.0;
}
-void CosineHillRotate_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void CosineHillRotate_TemperatureBC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
CosineHillRotate* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)CosineHillRotate_Type, CosineHillRotate, True, 0 );
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
- feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
-
CosineHillRotate_TemperatureFunction( self, coord, result );
}
diff -r 5577e2b0ce09 -r e0b482223187 SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx
--- a/SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/SysTest/AnalyticPlugins/HomogeneousNaturalBCs/HomogeneousNaturalBCs.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -52,7 +52,7 @@ typedef struct {
} HomogeneousNaturalBCs;
-void HomogeneousNaturalBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void HomogeneousNaturalBCs_Velocity_SkewToMesh(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
HomogeneousNaturalBCs* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
double* result = (double*) _result;
@@ -62,7 +62,7 @@ void HomogeneousNaturalBCs_Velocity_Skew
}
-void HomogeneousNaturalBCs_TemperatureFunction( void* analyticSolution, double* coord, double* temperature ) {
+void HomogeneousNaturalBCs_TemperatureFunction( void* analyticSolution, const double* coord, double* temperature ) {
HomogeneousNaturalBCs *self = (HomogeneousNaturalBCs*)analyticSolution;
if ( coord[ J_AXIS ] < tan( self->angle ) * coord[ I_AXIS ] + 0.25 )
@@ -71,18 +71,11 @@ void HomogeneousNaturalBCs_TemperatureFu
*temperature = 0.0;
}
-void HomogeneousNaturalBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void HomogeneousNaturalBCs_TemperatureBC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
HomogeneousNaturalBCs* self = Stg_ComponentFactory_ConstructByName( context->CF, (Name)HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True, 0 );
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
- feVariable = (FeVariable* )FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
-
HomogeneousNaturalBCs_TemperatureFunction( self, coord, result );
}
diff -r 5577e2b0ce09 -r e0b482223187 SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx
--- a/SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/SysTest/AnalyticPlugins/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -78,7 +78,7 @@ void LidDrivenIsoviscousAnalytic_Calcula
self->D = - ( 2.0 * n * M_PI * e_2nPI - e_2nPI + 1.0 ) * e_nPI / E;
}
-void LidDrivenIsoviscousAnalytic_VelocityFunction( void* analyticSolution, double* coord, double* velocity ) {
+void LidDrivenIsoviscousAnalytic_VelocityFunction( void* analyticSolution, const double* coord, double* velocity ) {
LidDrivenIsoviscousAnalytic *self = (LidDrivenIsoviscousAnalytic*)analyticSolution;
double x,y;
double n;
@@ -104,16 +104,14 @@ void LidDrivenIsoviscousAnalytic_Velocit
}
-void LidDrivenIsoviscousAnalytic_PressureFunction( void* analyticSolution, double* coord, double* pressure ) {
+void LidDrivenIsoviscousAnalytic_PressureFunction( void* analyticSolution, const double* coord, double* pressure ) {
LidDrivenIsoviscousAnalytic *self = (LidDrivenIsoviscousAnalytic*)analyticSolution;
double x,y;
double n;
- double A, B, C, D;
+ double C, D;
/* Get local copy of constants */
n = (double) self->wavenumber;
- A = self->A;
- B = self->B;
C = self->C;
D = self->D;
diff -r 5577e2b0ce09 -r e0b482223187 SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.cxx
--- a/SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/SysTest/AnalyticPlugins/LinearTemperatureField/LinearTemperatureField.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -51,7 +51,7 @@ const Type LinearTemperatureField_Type =
typedef struct { __FieldTest FeVariable* temperatureField; } LinearTemperatureField;
-void LinearTemperatureField_TemperatureFunction( void* analyticSolution, double* coord, double* value ) {
+void LinearTemperatureField_TemperatureFunction( void* analyticSolution, const double* coord, double* value ) {
*value = 1.0 - coord[ J_AXIS ];
}
diff -r 5577e2b0ce09 -r e0b482223187 SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx
--- a/SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/SysTest/AnalyticPlugins/LinearVelocityAnalytic/LinearVelocityAnalytic.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -51,7 +51,7 @@ typedef struct {
FeVariable* velocityField;
double nodeVelocity[8][3];
double nodeCoords[8][3];
- int cornerNodeCount;
+ uint cornerNodeCount;
} LinearVelocityAnalytic;
Index Grid_ProjectIJK( Grid* grid, Index i, Index j, Index k ) {
@@ -110,7 +110,7 @@ void LinearVelocityAnalytic_GetCornerNod
}
}
-void GetLocalCoords( LinearVelocityAnalytic* self, double* coord, double* xi ) {
+void GetLocalCoords( LinearVelocityAnalytic* self, const double* coord, double* xi ) {
FeVariable* velocityField = self->velocityField;
XYZ min;
XYZ max;
@@ -124,7 +124,7 @@ void GetLocalCoords( LinearVelocityAnaly
}
/* Do a normal linear interpolation as if the box were a FEM element */
-void LinearVelocityAnalytic_VelocityFunction( void* analyticSolution, double* coord, double* velocity ) {
+void LinearVelocityAnalytic_VelocityFunction( void* analyticSolution, const double* coord, double* velocity ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
FeVariable* velocityField = self->velocityField;
FeMesh* mesh = velocityField->feMesh;
@@ -151,11 +151,11 @@ void LinearVelocityAnalytic_VelocityFunc
}
}
}
-void LinearVelocityAnalytic_PressureFunction( void* analyticSolution, double* coord, double* pressure ) {
+void LinearVelocityAnalytic_PressureFunction( void* analyticSolution, const double* coord, double* pressure ) {
*pressure = 0.0;
}
-void LinearVelocityAnalytic_VelocityGradientsFunction( void* analyticSolution, double* coord, double* velocityGradients ) {
+void LinearVelocityAnalytic_VelocityGradientsFunction( void* analyticSolution, const double* coord, double* velocityGradients ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
FeVariable* velocityField = self->velocityField;
FeMesh* mesh = velocityField->feMesh;
@@ -295,7 +295,7 @@ void LinearVelocityAnalytic_VelocityGrad
Memory_Free( GNx );
}
-void LinearVelocityAnalytic_StrainRateFunction( void* analyticSolution, double* coord, double* strainRate ) {
+void LinearVelocityAnalytic_StrainRateFunction( void* analyticSolution, const double* coord, double* strainRate ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
Dimension_Index dim = self->velocityField->dim;
TensorArray velocityGradients;
@@ -307,7 +307,7 @@ void LinearVelocityAnalytic_StrainRateFu
TensorArray_GetSymmetricPart( velocityGradients, dim, strainRate );
}
-void LinearVelocityAnalytic_StrainRateInvFunction( void* analyticSolution, double* coord, double* strainRateInv ) {
+void LinearVelocityAnalytic_StrainRateInvFunction( void* analyticSolution, const double* coord, double* strainRateInv ) {
LinearVelocityAnalytic *self = (LinearVelocityAnalytic*)analyticSolution;
Dimension_Index dim = self->velocityField->dim;
SymmetricTensor strainRate;
diff -r 5577e2b0ce09 -r e0b482223187 plugins/StandardConditionFunctions/StandardConditionFunctions.cxx
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.cxx Sun Oct 16 05:35:21 2011 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.cxx Sun Oct 16 05:39:40 2011 -0700
@@ -104,8 +104,6 @@ void _StgFEM_StandardConditionFunctions_
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SinusoidalLid, "Velocity_SinusoidalLid" );
ConditionFunction_Register_Add( condFunc_Register, condFunc );
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_CornerOnly, "Velocity_Lid_CornerOnly" );
- ConditionFunction_Register_Add( condFunc_Register, condFunc );
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_TemperatureCosineHill, "Temperature_CosineHill" );
ConditionFunction_Register_Add( condFunc_Register, condFunc );
@@ -167,21 +165,6 @@ void _StgFEM_StandardConditionFunctions_
ConditionFunction_Register_Add( condFunc_Register, condFunc );
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpecRidge3D, "SpecRidge3D" );
- ConditionFunction_Register_Add( condFunc_Register, condFunc );
-
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCX, "SpectralBCX" );
- ConditionFunction_Register_Add( condFunc_Register, condFunc );
-
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCY, "SpectralBCY" );
- ConditionFunction_Register_Add( condFunc_Register, condFunc );
-
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralBCZ, "SpectralBCZ" );
- ConditionFunction_Register_Add( condFunc_Register, condFunc );
-
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralPressureBCX, "SpectralPressureBCX" );
- ConditionFunction_Register_Add( condFunc_Register, condFunc );
-
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_SpectralPressureBCY, "SpectralPressureBCY" );
ConditionFunction_Register_Add( condFunc_Register, condFunc );
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_ErrorFunc, "ErrorFunc" );
@@ -674,28 +657,19 @@ erfc(double x)
#endif
-void StgFEM_StandardConditionFunctions_SolidBodyRotation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_SolidBodyRotation(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
Coord centre;
Coord vector;
double omega;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
-
/* Find Centre of Solid Body Rotation */
centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0 );
centre[ J_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreY", 0.0 );
centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0 );
omega = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0 );
-
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
/* Find vector from centre to node */
StGermain_VectorSubtraction( vector, coord, centre, 2 );
@@ -705,20 +679,14 @@ void StgFEM_StandardConditionFunctions_S
}
-void StgFEM_StandardConditionFunctions_PartialRotationX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_PartialRotationX(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
Coord centre;
Coord vector;
double omega;
double size;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
/* Find Centre of Solid Body Rotation */
centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0 );
@@ -726,9 +694,6 @@ void StgFEM_StandardConditionFunctions_P
centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0 );
size = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"RadiusCylinder", 0.0 );
omega = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0 );
-
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
/* Find vector from centre to node */
StGermain_VectorSubtraction( vector, coord, centre, 2 );
@@ -742,20 +707,14 @@ void StgFEM_StandardConditionFunctions_P
*result = 0.0;
}
-void StgFEM_StandardConditionFunctions_PartialRotationY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_PartialRotationY(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
Coord centre;
Coord vector;
double omega;
double size;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
/* Find Centre of Solid Body Rotation */
centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreX", 0.0 );
@@ -763,9 +722,6 @@ void StgFEM_StandardConditionFunctions_P
centre[ K_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationCentreZ", 0.0 );
size = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"RadiusCylinder", 0.0 );
omega = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SolidBodyRotationOmega", 1.0 );
-
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
/* Find vector from centre to node */
StGermain_VectorSubtraction( vector, coord, centre, 2 );
@@ -777,20 +733,14 @@ void StgFEM_StandardConditionFunctions_P
}
-void StgFEM_StandardConditionFunctions_TaperedRotationX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_TaperedRotationX(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
Coord centre;
Coord vector;
double omega;
double size, r, taper;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
/* Find Centre of Solid Body Rotation */
centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreX", 0.0 );
@@ -800,9 +750,6 @@ void StgFEM_StandardConditionFunctions_T
omega = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationOmega", 1.0 );
taper = Dictionary_GetDouble_WithDefault( dictionary, "TaperedRadius", 0.0 );
-
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
/* Find vector from centre to node */
StGermain_VectorSubtraction( vector, coord, centre, 2 );
@@ -817,20 +764,14 @@ void StgFEM_StandardConditionFunctions_T
*result = 0;
}
-void StgFEM_StandardConditionFunctions_TaperedRotationY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_TaperedRotationY(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
Coord centre;
Coord vector;
double omega;
double size, r, taper;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
/* Find Centre of Solid Body Rotation */
centre[ I_AXIS ] = Dictionary_GetDouble_WithDefault( dictionary, "SolidBodyRotationCentreX", 0.0 );
@@ -841,12 +782,8 @@ void StgFEM_StandardConditionFunctions_T
taper = Dictionary_GetDouble_WithDefault( dictionary, "TaperedRadius", 0.0 );
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
-
/* Find vector from centre to node */
StGermain_VectorSubtraction( vector, coord, centre, 2 );
-
r=sqrt(vector[ I_AXIS ]*vector[ I_AXIS ]
+vector[ J_AXIS ]*vector[ J_AXIS ]);
@@ -861,119 +798,77 @@ void StgFEM_StandardConditionFunctions_T
-void StgFEM_StandardConditionFunctions_SimpleShear( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_SimpleShear(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
double centre;
double factor;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
-
/* Find Centre of Solid Body Rotation */
centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearCentreY", 0.0 );
factor = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearFactor", 1.0 );
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
-
*result = factor * (coord[ J_AXIS ] - centre);
}
-void StgFEM_StandardConditionFunctions_ShearZ( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_ShearZ(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
double centre;
double factor;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
-
/* Find Centre of Solid Body Rotation */
centre = Dictionary_GetDouble_WithDefault( dictionary, "ShearZCentre", 0.0 );
factor = Dictionary_GetDouble_WithDefault( dictionary, "ShearZFactor", 1.0 );
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
-
*result = factor * (coord[ K_AXIS ] - centre);
}
-void StgFEM_StandardConditionFunctions_SimpleShearInverted( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_SimpleShearInverted(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
- double centre;
double factor;
- double yAxisInvert;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
/* Find Centre of Solid Body Rotation */
- centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearCentreY", 0.0 );
factor = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SimpleShearFactor", 1.0 );
-
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
-
- yAxisInvert = coord[ J_AXIS ] * -1.0 - 1.0;
*result = factor * ( 1.0 - coord[ J_AXIS ] ) ;
}
-void StgFEM_StandardConditionFunctions_Extension( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_Extension(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
double centre;
double factor;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
-
/* Find Centre of Solid Body Rotation */
centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ExtensionCentreX", 0.0 );
factor = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ExtensionFactor", 1.0 );
- /* Find coordinate of node */
- coord = Mesh_GetVertex( mesh, node_lI );
-
*result = factor * (coord[ I_AXIS ] - centre);
}
-void StgFEM_StandardConditionFunctions_PartialLid_TopLayer( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
+void StgFEM_StandardConditionFunctions_PartialLid_TopLayer(const double *coord, void* _context, void* result ) {
DomainContext* context = (DomainContext*)_context;
- FeVariable* velVar = NULL;
- FeMesh* mesh = NULL;
double* velResult = (double*)result;
double margin = 0;
double min[3], max[3];
+ FeVariable* velVar = NULL;
+ FeMesh* mesh = NULL;
velVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
mesh = velVar->feMesh;
-
Mesh_GetMinimumSeparation( mesh, &margin, NULL );
Mesh_GetGlobalCoordRange( mesh, min, max );
margin *= 1.1;
- if( (Mesh_GetVertex( mesh, node_lI )[I_AXIS] < (max[I_AXIS] - margin )) &&
- (Mesh_GetVertex( mesh, node_lI )[I_AXIS] > (min[I_AXIS] + margin )))
+ if((coord[I_AXIS] < (max[I_AXIS] - margin )) &&
+ (coord[I_AXIS] > (min[I_AXIS] + margin )))
{
(*velResult) = 1;
}
@@ -982,7 +877,7 @@ void StgFEM_StandardConditionFunctions_P
}
}
-void StgFEM_StandardConditionFunctions_LinearInterpolationLid( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
+void StgFEM_StandardConditionFunctions_LinearInterpolationLid(const double *coord, void* _context, void* result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* velVar = NULL;
FeMesh* mesh = NULL;
@@ -1001,11 +896,11 @@ void StgFEM_StandardConditionFunctions_L
leftHandSideValue = Dictionary_GetDouble_WithDefault( context->dictionary, (Dictionary_Entry_Key)"bcLeftHandSideValue", 0.0 );
rightHandSideValue = Dictionary_GetDouble_WithDefault( context->dictionary, (Dictionary_Entry_Key)"bcRightHandSideValue", 1.0 );
gradient = (rightHandSideValue - leftHandSideValue) / boxLength;
- (*velResult ) = leftHandSideValue + gradient * (Mesh_GetVertex( mesh, node_lI )[I_AXIS] - min[I_AXIS] );
+ (*velResult ) = leftHandSideValue + gradient * (coord[I_AXIS] - min[I_AXIS] );
}
-void StgFEM_StandardConditionFunctions_Lid_RampWithCentralMax( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
+void StgFEM_StandardConditionFunctions_Lid_RampWithCentralMax(const double *coord, void* _context, void* result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* velVar = NULL;
FeMesh* mesh = NULL;
@@ -1018,7 +913,7 @@ void StgFEM_StandardConditionFunctions_L
mesh = velVar->feMesh;
Mesh_GetGlobalCoordRange( mesh, min, max );
- xPosRelativeToTopLeft = Mesh_GetVertex( mesh, node_lI )[I_AXIS] - min[I_AXIS];
+ xPosRelativeToTopLeft = coord[I_AXIS] - min[I_AXIS];
boxLength = max[I_AXIS] - min[I_AXIS];
if ( xPosRelativeToTopLeft < boxLength / 2 ) {
(*velResult) = 2 * xPosRelativeToTopLeft / boxLength;
@@ -1027,7 +922,7 @@ void StgFEM_StandardConditionFunctions_L
(*velResult) = 1 - 2 * ( xPosRelativeToTopLeft - (boxLength/2) );
}
}
-void StgFEM_StandardConditionFunctions_LinearVelocityLeftWall( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
+void StgFEM_StandardConditionFunctions_LinearVelocityLeftWall(const double *coord, void* _context, void* result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* velVar = NULL;
FeMesh* mesh = NULL;
@@ -1042,11 +937,9 @@ void StgFEM_StandardConditionFunctions_L
Mesh_GetGlobalCoordRange( mesh, min, max );
gradient = maxvel/(min[1] - max[1]);
- (*velResult) = gradient*Mesh_GetVertex( mesh, node_lI )[J_AXIS];
- //printf("Left velResult is %g\n",(*velResult));
-
+ (*velResult) = gradient*coord[J_AXIS];
}
-void StgFEM_StandardConditionFunctions_LinearVelocityRightWall( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
+void StgFEM_StandardConditionFunctions_LinearVelocityRightWall(const double *coord, void* _context, void* result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* velVar = NULL;
FeMesh* mesh = NULL;
@@ -1061,12 +954,11 @@ void StgFEM_StandardConditionFunctions_L
Mesh_GetGlobalCoordRange( mesh, min, max );
gradient = maxvel/(max[1] - min[1]);
- (*velResult) = maxvel - gradient*Mesh_GetVertex( mesh, node_lI )[J_AXIS];
- //printf("Right velResult is %g\n",(*velResult));
+ (*velResult) = maxvel - gradient*coord[J_AXIS];
}
-void StgFEM_StandardConditionFunctions_SinusoidalLid( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
+void StgFEM_StandardConditionFunctions_SinusoidalLid(const double *coord, void* _context, void* result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* velVar = NULL;
FeMesh* mesh = NULL;
@@ -1083,37 +975,11 @@ void StgFEM_StandardConditionFunctions_S
Mesh_GetGlobalCoordRange( mesh, min, max );
boxLength = max[I_AXIS] - min[I_AXIS];
- linearInterp = (Mesh_GetVertex( mesh, node_lI )[I_AXIS] - min[I_AXIS] ) / boxLength;
+ linearInterp = (coord[I_AXIS] - min[I_AXIS] ) / boxLength;
(*velResult) = sin( linearInterp * M_PI * wavenumber );
}
-
-void StgFEM_StandardConditionFunctions_CornerOnly( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) {
- DomainContext* context = (DomainContext*)_context;
- FeVariable* velVar = NULL;
- FeMesh* feMesh = NULL;
- double* velResult = (double*)result;
- Node_GlobalIndex node_gI = 0;
- unsigned inds[3];
- Grid* elGrid;
-
- velVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- feMesh = velVar->feMesh;
- elGrid = *(Grid**)ExtensionManager_Get( feMesh->info, feMesh,
- ExtensionManager_GetHandle( feMesh->info, (Name)"elGrid" ) );
-
- node_gI = Mesh_DomainToGlobal( feMesh, MT_VERTEX, node_lI );
- RegularMeshUtils_Node_1DTo3D( feMesh, node_gI, inds );
-
- if ( inds[0] == elGrid->sizes[I_AXIS] ) {
- (*velResult) = 1;
- }
- else {
- (*velResult) = 0;
- }
-}
-
-double StGermain_CosineHillValue( double* centre, double* position, double height, double diameterAtBase, Dimension_Index dim ) {
+double StGermain_CosineHillValue( const double* centre, const double* position, const double height, const double diameterAtBase, Dimension_Index dim ) {
double distanceFromCentre = StGermain_DistanceBetweenPoints( centre, position, dim );
if (distanceFromCentre < diameterAtBase * 0.5 )
@@ -1122,11 +988,9 @@ double StGermain_CosineHillValue( double
return 0.0;
}
-void StgFEM_StandardConditionFunctions_TemperatureCosineHill( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_TemperatureCosineHill(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* feMesh = NULL;
double* result = (double*) _result;
Coord centre;
Coord rotationCentre;
@@ -1134,9 +998,6 @@ void StgFEM_StandardConditionFunctions_T
double hillHeight;
double hillDiameter;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- feMesh = feVariable->feMesh;
-
/* Read values from dictionary */
hillHeight = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillHeight" , 1.0 );
hillDiameter = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"CosineHillDiameter", 1.0 );
@@ -1156,16 +1017,15 @@ void StgFEM_StandardConditionFunctions_T
StGermain_VectorAddition( centre, centre, rotationCentre, context->dim );
}
- *result = StGermain_CosineHillValue( centre, Mesh_GetVertex( feMesh, node_lI ), hillHeight, hillDiameter, context->dim );
+ *result = StGermain_CosineHillValue( centre, coord, hillHeight, hillDiameter, context->dim );
}
-void StgFEM_StandardConditionFunctions_LinearWithSinusoidalPerturbation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_LinearWithSinusoidalPerturbation(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
FeVariable* feVariable = NULL;
FeMesh* feMesh = NULL;
- unsigned nDims;
double* result = (double*) _result;
double topLayerBC;
double bottomLayerBC;
@@ -1173,14 +1033,12 @@ void StgFEM_StandardConditionFunctions_L
double horizontalWaveNumber;
double verticalWaveNumber;
double scaleFactor;
- double* coord;
Coord relScaledCoord;
double min[3], max[3], topLayerCoord, bottomLayerCoord;
feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
feMesh = feVariable->feMesh;
- nDims = Mesh_GetDimSize( feMesh );
Mesh_GetGlobalCoordRange( feMesh, min, max );
topLayerCoord = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_TopLayerCoord", max[J_AXIS] );
@@ -1195,8 +1053,6 @@ void StgFEM_StandardConditionFunctions_L
horizontalWaveNumber = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_HorizontalWaveNumber", 1.0 );
verticalWaveNumber = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_VerticalWaveNumber", 1.0 );
- coord = Mesh_GetVertex( feMesh, node_lI );
-
/* if node is outside IC shape set to 0 temperature */
if( coord[J_AXIS] > topLayerCoord || coord[J_AXIS] < bottomLayerCoord ) {
*result = 0; return ;
@@ -1213,36 +1069,32 @@ void StgFEM_StandardConditionFunctions_L
* sin( verticalWaveNumber * M_PI * relScaledCoord[ J_AXIS ] ) );
}
-void StgFEM_StandardConditionFunctions_Trigonometry( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_Trigonometry(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* feVariable = NULL;
FeMesh* feMesh = NULL;
double* result = (double*) _result;
- double* coord;
- double height, width;
+ double width;
double min[3], max[3];
feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
feMesh = feVariable->feMesh;
Mesh_GetGlobalCoordRange( feMesh, min, max );
- coord = Mesh_GetVertex( feMesh, node_lI );
/* Get Aspect Ratio */
- height = max[ J_AXIS ] - min[ J_AXIS ];
width = max[ I_AXIS ] - min[ I_AXIS ];
*result = 1.0 - 0.5 * M_PI * coord[ J_AXIS ] * sin( M_PI * coord[ I_AXIS ]/width );
}
#define SMALL 1.0e-5
-void Stg_FEM_VelicTemperatureIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void Stg_FEM_VelicTemperatureIC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* temperatureField = (FeVariable*) FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
FeMesh* feMesh = temperatureField->feMesh;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double x;
double y;
double kx;
@@ -1253,8 +1105,6 @@ void Stg_FEM_VelicTemperatureIC( Node_Lo
double Lx;
double min[3], max[3];
- /* Find coordinate of node */
- coord = Mesh_GetVertex( feMesh, node_lI );
Mesh_GetGlobalCoordRange( feMesh, min, max );
/* Make sure that the box has right dimensions */
@@ -1279,13 +1129,12 @@ void Stg_FEM_VelicTemperatureIC( Node_Lo
}
/* IC from Mirko Velic. This is the IC temperature for his solB, from his Analytic Suite. Added 22-May-2006 */
-void Stg_FEM_VelicTemperatureIC_SolB( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void Stg_FEM_VelicTemperatureIC_SolB(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* temperatureField = (FeVariable*) FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
FeMesh* feMesh = temperatureField->feMesh;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double x;
double y;
double km; /* for y-direction */
@@ -1296,8 +1145,6 @@ void Stg_FEM_VelicTemperatureIC_SolB( No
double sigma;
double min[3], max[3];
- /* Find coordinate of node */
- coord = Mesh_GetVertex( feMesh, node_lI );
Mesh_GetGlobalCoordRange( feMesh, min, max );
/* Make sure that the box has right dimensions */
@@ -1322,13 +1169,12 @@ void Stg_FEM_VelicTemperatureIC_SolB( No
/* Initial Condition derived from Boundary Layer theory -
taken from P. E. van Keken, S. D. King, U. R. Schmeling, U. R. Christensen, D. Neumeister, and M.-P. Doin. A comparison of methods for the modeling of thermochemical convection. Journal of Geophysical Research, 102(B10):22477-22496, october 1997. */
-void StgFEM_StandardConditionFunctions_AnalyticalTemperatureIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_AnalyticalTemperatureIC(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* feVariable = NULL;
FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double u0, v0, Q;
double x, y;
double RaT;
@@ -1339,7 +1185,6 @@ void StgFEM_StandardConditionFunctions_A
feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
Mesh_GetGlobalCoordRange( feMesh, min, max );
/* Get Aspect Ratio */
@@ -1377,53 +1222,37 @@ void StgFEM_StandardConditionFunctions_A
}
-void StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC(const double *coord, void* _context, void* _result )
{
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
double perturbationAmplitude;
double thermalAnomalyOffset;
- double* coord;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
perturbationAmplitude = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SinusoidalTempIC_PerturbationAmplitude", 0.1 );
thermalAnomalyOffset = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"thermalAnomalyOffset", 0.0 );
- coord = Mesh_GetVertex( mesh, node_lI );
-
/* eqn 1 from S.D.King & D.L. Anderson, "Edge-drive convection", EPSL 160 (1998) 289-296 */
*result = 1.0 + perturbationAmplitude * sin( M_PI * coord[ J_AXIS ] ) * cos( 0.5 * M_PI * ( coord[ I_AXIS ] + thermalAnomalyOffset ) );
}
-void StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC(const double *coord, void* _context, void* _result )
{
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
double* result = (double*) _result;
- double* coord;
int dim;
double contStartX, contEndX;
double contStartY, contEndY;
double contStartZ, contEndZ;
- double minY, maxY, interiorTemp;
+ double interiorTemp;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "TemperatureField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
-
dim = Dictionary_GetInt_WithDefault( dictionary, (Dictionary_Entry_Key)"dim", 0.0 );
contStartX = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contStartX", 0.0 );
contEndX = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contEndX", 0.0 );
contStartY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contStartY", 0.0 );
contEndY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contEndY", 0.0 );
- minY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"minY", 0.0 );
- maxY = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"maxY", 0.0 );
interiorTemp = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"interiorTemp", 1.0 );
if ( dim == 3 ) {
contStartZ = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"contStartZ", 0.0 );
@@ -1442,7 +1271,7 @@ void StgFEM_StandardConditionFunctions_T
*result = interiorTemp;
}
-void StgFEM_StandardConditionFunctions_SinusoidalExtension( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_SinusoidalExtension(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
@@ -1461,20 +1290,13 @@ void StgFEM_StandardConditionFunctions_S
}
-void StgFEM_StandardConditionFunctions_StepFunction( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_StepFunction(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double lower_offset, upper_offset;
double value, lower_value, upper_value;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
lower_offset = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionLowerOffset", 0.0 );
upper_offset = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionUpperOffset", lower_offset );
@@ -1502,20 +1324,13 @@ void StgFEM_StandardConditionFunctions_S
}
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct1( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct1(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double start, end;
double value;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
start = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct1Start", 0.0 );
end = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct1End", 0.0 );
@@ -1530,20 +1345,13 @@ void StG_FEM_StandardConditionFunctions_
}
}
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct2( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct2(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double start, end;
double value;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
start = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct2Start", 0.0 );
end = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct2End", 0.0 );
@@ -1559,20 +1367,13 @@ void StG_FEM_StandardConditionFunctions_
}
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct3(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double start, end;
double value;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
start = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct3Start", 0.0 );
end = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct3End", 0.0 );
@@ -1587,20 +1388,13 @@ void StG_FEM_StandardConditionFunctions_
}
}
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct4(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double start, end;
double value;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
start = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct4Start", 0.0 );
end = Dictionary_GetDouble_WithDefault( dictionary, "StepFunctionProduct4End", 0.0 );
@@ -1618,20 +1412,13 @@ void StG_FEM_StandardConditionFunctions_
/* A Gaussian GaussianHeight*exp(-((GaussianCenter-x)/GaussianWidth)^2) */
void StG_FEM_StandardConditionFunctions_Gaussian
-( Node_LocalIndex node_lI, Variable_Index var_I, void* _context,
+(const double *coord, void* _context,
void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double center, width, height;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
center = Dictionary_GetDouble_WithDefault( dictionary,
"GaussianCenter", 0.0 );
@@ -1646,13 +1433,14 @@ void StG_FEM_StandardConditionFunctions_
/(width*width));
}
-void StgFEM_StandardConditionFunctions_MovingStepFunction( Node_LocalIndex nodeInd, Variable_Index varInd, void* _ctx, void* _result ) {
+void StgFEM_StandardConditionFunctions_MovingStepFunction
+(const double *coord, void* _ctx, void* _result ) {
FiniteElementContext* ctx = (FiniteElementContext*)_ctx;
FeVariable* velField;
FeMesh* mesh;
Dictionary* dict = ctx->dictionary;
double* result = (double*)_result;
- double* coord, offsetLower, offsetUpper, left, right;
+ double offsetLower, offsetUpper, left, right;
double *wallCrd, pos;
int dim, wallDepth;
unsigned ijk[3];
@@ -1665,9 +1453,8 @@ void StgFEM_StandardConditionFunctions_M
ctx->fieldVariable_Register, "VelocityField" );
/*
- ** Get the mesh and the coordinate of the node. */
+ ** Get the mesh. */
mesh = velField->feMesh;
- coord = Mesh_GetVertex( mesh, nodeInd );
/*
** Extract all the parameters we need from the dictionary. */
@@ -1710,7 +1497,7 @@ void StgFEM_StandardConditionFunctions_M
}
}
-void StgFEM_StandardConditionFunctions_ConvectionBenchmark( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_ConvectionBenchmark(const double *coord, void* _context, void* _result ) {
/* This IC is for the 2D ConvectionBenchmark defined in
* http://www.mcc.monash.edu.au/twiki/view/Research/ConvectionBenchmarks
*/
@@ -1720,7 +1507,6 @@ void StgFEM_StandardConditionFunctions_C
FeMesh* mesh;
double* result = (double*) _result;
double min[3], max[3];
- double* coord;
double x,y;
double Lx, Ly;
@@ -1732,8 +1518,6 @@ void StgFEM_StandardConditionFunctions_C
Lx = max[ I_AXIS ] - min[ I_AXIS ];
Ly = max[ J_AXIS ] - min[ J_AXIS ];
- coord = Mesh_GetVertex( mesh, node_lI );
-
x = ( coord[0] - min[ I_AXIS ] ) / Lx;
y = ( coord[1] - min[ J_AXIS ] ) / Ly;
@@ -1741,7 +1525,7 @@ void StgFEM_StandardConditionFunctions_C
*result = ( 1 - y ) + ( cos( M_PI * x ) * sin( M_PI * y ) ) / 100 ;
}
-void StgFEM_StandardConditionFunctions_ConstantVector( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_ConstantVector(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
@@ -1754,13 +1538,10 @@ void StgFEM_StandardConditionFunctions_C
/* 3D spec ridge top BC (for milestone 1 of magma project )
* to be applied to the top x-z plane of the domain */
-void StgFEM_StandardConditionFunctions_SpecRidge3D( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_SpecRidge3D(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double leftVal;
double rightVal;
@@ -1770,10 +1551,6 @@ void StgFEM_StandardConditionFunctions_S
double xBegin, xEnd;
double zBegin, zEnd;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
leftVal = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DLeftSide", 0.0 );
rightVal = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"SpecRidge3DRightSide", 0.0 );
@@ -1799,20 +1576,13 @@ void StgFEM_StandardConditionFunctions_S
*result = rightVal;
}
-void StgFEM_StandardConditionFunctions_TemperatureProfile( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_TemperatureProfile(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double T_0, H_0, dH, H, H_m, A, B, C, x_min, x_max, y_max, T_m, xc, dum;
/* G.Ito 10/08 added variables x_min, x_max, T_m, Xc, to do variation in x
and limit maximum T */
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
T_0 = Dictionary_GetDouble_WithDefault( dictionary, "TemperatureProfileTop", 0.0 );
T_m = Dictionary_GetDouble_WithDefault( dictionary, "TemperatureProfileMax", 10000.0 );
@@ -1858,19 +1628,12 @@ void StgFEM_StandardConditionFunctions_T
}
-void StgFEM_StandardConditionFunctions_ERF( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_ERF(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double width, scale, dilate, offset, constant;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
width = Dictionary_GetDouble_WithDefault( dictionary, "ERFWidth", 0.0 );
offset= Dictionary_GetDouble_WithDefault(dictionary, "ERFOffset",0.0 );
@@ -1893,22 +1656,13 @@ void StgFEM_StandardConditionFunctions_E
*result=constant+scale*erf((coord[dim]+offset)/dilate);
}
-void StgFEM_StandardConditionFunctions_ERFC(Node_LocalIndex node_lI,
- Variable_Index var_I,
+void StgFEM_StandardConditionFunctions_ERFC(const double *coord,
void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double width, scale, dilate, offset, constant;
unsigned dim;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName
- ( context->fieldVariable_Register, "VelocityField" );
- feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
width = Dictionary_GetDouble_WithDefault(dictionary, "ERFCWidth", 0.0 );
offset= Dictionary_GetDouble_WithDefault(dictionary, "ERFCOffset",0.0 );
@@ -1931,24 +1685,20 @@ void StgFEM_StandardConditionFunctions_E
*result=constant+scale*erfc((coord[dim]+offset)/dilate);
}
-void StgFEM_StandardConditionFunctions_RubberSheet( Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result )
+void StgFEM_StandardConditionFunctions_RubberSheet(const double *coord,
+ void* _context, void* _result)
{
FiniteElementContext * context = (FiniteElementContext*)_context;
FeVariable* feVariable = NULL;
FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double lower_offset, upper_offset;
double lower_value, upper_value, time;
unsigned dim;
feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
lower_offset = Dictionary_GetDouble_WithDefault( dictionary,
"RubberSheetLowerOffset",
@@ -1986,130 +1736,6 @@ void StgFEM_StandardConditionFunctions_R
}
}
-/* get the BC's from the analytic solution as stored on the relevant FeVariable */
-void StgFEM_StandardConditionFunctions_SpectralBCX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* analyticFeVarX = NULL;
- FeVariable* numericFeVar = NULL;
- double* result = (double*) _result;
- /*FeMesh* feMesh = NULL;
- double* coord;
- Node_LocalIndex analyticNodeI;
- Element_DomainIndex analyticElement_I;
- double analyticLocalElementCoord[3];
- FeMesh* analyticFeMesh;
- */
- analyticFeVarX = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "SpectralVelocityXField" );
- numericFeVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- //feMesh = numericFeVar->feMesh;
- //coord = Mesh_GetVertex( feMesh, node_lI );
-
- //analyticFeMesh = analyticFeVarX->feMesh;
- //if( Mesh_SearchElements( analyticFeMesh, coord, &analyticElement_I ) ) {
- // FeMesh_CoordGlobalToLocal( analyticFeMesh, analyticElement_I, coord, analyticLocalElementCoord );
- // FeVariable_InterpolateWithinElement( analyticFeVarX, analyticElement_I, analyticLocalElementCoord, result );
- //}
- //else { /* numerical solution node outside analytic mesh - just find closest point & use that */
- // analyticNodeI = Mesh_NearestVertex( analyticFeMesh, coord );
- // FeVariable_GetValueAtNode( analyticFeVarX, analyticNodeI, result );
- //}
-
- FeVariable_GetValueAtNode( analyticFeVarX, node_lI, result );
-}
-
-void StgFEM_StandardConditionFunctions_SpectralBCY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* analyticFeVarY = NULL;
- FeVariable* numericFeVar = NULL;
- double* result = (double*) _result;
- /*FeMesh* feMesh = NULL;
- double* coord;
- Node_LocalIndex analyticNodeI;
- Element_DomainIndex analyticElement_I;
- double analyticLocalElementCoord[3];
- FeMesh* analyticFeMesh;
- */
- analyticFeVarY = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "SpectralVelocityYField" );
- numericFeVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- //feMesh = numericFeVar->feMesh;
- //coord = Mesh_GetVertex( feMesh, node_lI );
-
- //analyticFeMesh = analyticFeVarY->feMesh;
- //if( Mesh_SearchElements( analyticFeMesh, coord, &analyticElement_I ) ) {
- // FeMesh_CoordGlobalToLocal( analyticFeMesh, analyticElement_I, coord, analyticLocalElementCoord );
- // FeVariable_InterpolateWithinElement( analyticFeVarY, analyticElement_I, analyticLocalElementCoord, result );
- //}
- //else {
- // analyticNodeI = Mesh_NearestVertex( analyticFeMesh, coord );
- // FeVariable_GetValueAtNode( analyticFeVarY, analyticNodeI, result );
- //}
-
- FeVariable_GetValueAtNode( analyticFeVarY, node_lI, result );
-}
-
-void StgFEM_StandardConditionFunctions_SpectralBCZ( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* analyticFeVarZ = NULL;
- FeVariable* numericFeVar = NULL;
- double* result = (double*) _result;
- /*
- FeMesh* feMesh = NULL;
- double* coord;
- Node_LocalIndex analyticNodeI;
- Element_DomainIndex analyticElement_I;
- double analyticLocalElementCoord[3];
- FeMesh* analyticFeMesh;
- */
- analyticFeVarZ = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "SpectralVelocityZField" );
- numericFeVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- //feMesh = numericFeVar->feMesh;
- //coord = Mesh_GetVertex( feMesh, node_lI );
-
- //analyticFeMesh = analyticFeVarZ->feMesh;
- //if( Mesh_SearchElements( analyticFeMesh, coord, &analyticElement_I ) ) {
- // FeMesh_CoordGlobalToLocal( analyticFeMesh, analyticElement_I, coord, analyticLocalElementCoord );
- // FeVariable_InterpolateWithinElement( analyticFeVarZ, analyticElement_I, analyticLocalElementCoord, result );
- //}
- //else {
- // analyticNodeI = Mesh_NearestVertex( analyticFeMesh, coord );
- // FeVariable_GetValueAtNode( analyticFeVarZ, analyticNodeI, result );
- //}
-
- FeVariable_GetValueAtNode( analyticFeVarZ, node_lI, result );
-}
-
-void StgFEM_StandardConditionFunctions_SpectralPressureBCX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* analyticFeVarX = NULL;
- FeVariable* numericFeVar = NULL;
- FeMesh* feMesh = NULL;
- double* result = (double*) _result;
- double* coord;
-
- analyticFeVarX = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "SpectralPressureField" );
- numericFeVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "PressureField" );
- feMesh = numericFeVar->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
-
- FeVariable_GetValueAtNode( analyticFeVarX, node_lI, result );
-}
-
-void StgFEM_StandardConditionFunctions_SpectralPressureBCY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* analyticFeVarY = NULL;
- FeVariable* numericFeVar = NULL;
- FeMesh* feMesh = NULL;
- double* result = (double*) _result;
- double* coord;
-
- analyticFeVarY = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "SpectralPressureField" );
- numericFeVar = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "PressureField" );
- feMesh = numericFeVar->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
-
- FeVariable_GetValueAtNode( analyticFeVarY, node_lI, result );
-}
-
/* error function for use in 3D spec ridge top BC */
double errorFunction( double z, int n ) {
double pi = 3.1415926535;
@@ -2133,19 +1759,12 @@ double errorFunction( double z, int n )
-void StgFEM_StandardConditionFunctions_ErrorFunc( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_ErrorFunc(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* feMesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double dilate;
double width;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- feMesh = feVariable->feMesh;
- coord = Mesh_GetVertex( feMesh, node_lI );
dilate = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ErrorFuncDilate", 0.0 );
width = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"ErrorFuncWidth", 0.0 );
@@ -2161,13 +1780,10 @@ void StgFEM_StandardConditionFunctions_E
}
}
-void StgFEM_StandardConditionFunctions_GaussianDistribution( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_GaussianDistribution(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- Name variableName;
- double* coord;
unsigned nDims = context->dim;
unsigned dim_I;
double orig[3];
@@ -2175,10 +1791,6 @@ void StgFEM_StandardConditionFunctions_G
double gaussianScale = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianScale", 1.0 );
double background = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"backgroundValue", 1.0 );
double distsq = 0.0;
-
- variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
- coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
orig[0] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"x0", 0.0 );
orig[1] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"y0", 0.0 );
@@ -2190,37 +1802,21 @@ void StgFEM_StandardConditionFunctions_G
*result = gaussianScale * exp( -distsq / ( 2.0 * sigma * sigma ) ) + background;
}
-void StgFEM_StandardConditionFunctions_GravitationalPotential( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- Dictionary* dictionary = context->dictionary;
- double* result = (double*) _result;
- Name variableName;
- double* coord;
-
- variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
- coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
+void StgFEM_StandardConditionFunctions_GravitationalPotential(const double *coord, void* _context, void* _result ) {
+ double* result=(double*) _result;
*result = -1.0 * coord[J_AXIS];
}
-void StgFEM_StandardConditionFunctions_1DGaussianDistribution( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_1DGaussianDistribution(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- Name variableName;
- double* coord;
double orig[3];
double sigma = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"sigma", 1.0 );
double gaussianScale = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianScale", 1.0 );
double background = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"backgroundValue", 1.0 );
double distsq = 0.0;
-
- variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
- coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
orig[0] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"x0", 0.0 );
orig[1] = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"y0", 0.0 );
@@ -2231,18 +1827,11 @@ void StgFEM_StandardConditionFunctions_1
*result = gaussianScale * exp( -distsq / ( 2.0 * sigma * sigma ) ) + background;
}
-void StgFEM_StandardConditionFunctions_HalfContainer( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_HalfContainer(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- Name variableName;
- double* coord;
double halfPoint = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"halfPoint", 0.0 );
-
- variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
- coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
if( coord[1] < halfPoint )
*result = 1;
@@ -2250,7 +1839,7 @@ void StgFEM_StandardConditionFunctions_H
*result = 0;
}
-void StgFEM_StandardConditionFunctions_ConstantValue( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_ConstantValue(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
@@ -2259,18 +1848,11 @@ void StgFEM_StandardConditionFunctions_C
*result = value;
}
-void StgFEM_StandardConditionFunctions_DiagonalLine( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_DiagonalLine(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
double width = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"lineWidth", 1.0 );
- double* coord;
- Name variableName;
- FeVariable* feVariable = NULL;
-
- variableName = Dictionary_GetString_WithDefault( dictionary, "FieldVariable", "" );
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
- coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
if( fabs( coord[0] - coord[1] ) < width )
*result = 1.0;
@@ -2278,7 +1860,7 @@ void StgFEM_StandardConditionFunctions_D
*result = 0.0;
}
-void StgFEM_StandardConditionFunctions_DeltaFunction( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_DeltaFunction(const double *coord, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
@@ -2286,16 +1868,11 @@ void StgFEM_StandardConditionFunctions_D
unsigned dim = Dictionary_GetUnsignedInt_WithDefault( dictionary, "deltaFunctionDim", 0 );
double centre = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"deltaFunctionCentre", 0.5 );
double value = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"deltaFunctionValue", 1.0 );
- double* coord;
- Name variableName = Dictionary_GetString_WithDefault( dictionary, "DeltaFunctionFeVariable", "" );
- FeVariable* feVariable = (FeVariable*) FieldVariable_Register_GetByName( context->fieldVariable_Register, variableName );
-
- coord = Mesh_GetVertex( feVariable->feMesh, node_lI );
*result = (fabs( coord[dim] - centre ) < epsilon) ? value : 0.0;
}
-void StgFEM_StandardConditionFunctions_InflowBottom( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
+void StgFEM_StandardConditionFunctions_InflowBottom(const double *coord, void* _context, void* _result ) {
DomainContext* context = (DomainContext*)_context;
FeVariable* feVariable;
Dictionary* dictionary = context->dictionary;
@@ -2314,7 +1891,7 @@ void StgFEM_StandardConditionFunctions_I
*result = 2.0 * sideV * sideLength / wallLength;
}
-void StgFEM_StandardConditionFunctions_GaussianTube( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_GaussianTube(const double *coord, void* _context, void* _result )
{
DomainContext* context = (DomainContext*)_context;
Dictionary* dictionary = context->dictionary;
@@ -2323,7 +1900,6 @@ void StgFEM_StandardConditionFunctions_G
unsigned nDims;
double* result = (double*) _result;
double a1,b1,c1, a2,b2,c2, x,y,z,r_y,r_yz;
- double* coord;
double min[3], max[3];
double y_shift, z_shift;
@@ -2343,7 +1919,6 @@ void StgFEM_StandardConditionFunctions_G
y_shift = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_y_origin", 0.0 );
z_shift = Dictionary_GetDouble_WithDefault( dictionary, (Dictionary_Entry_Key)"GaussianTube_z_origin", 0.0 );
- coord = Mesh_GetVertex( feMesh, node_lI );
x = coord[ I_AXIS ];
y = coord[ J_AXIS ];
@@ -2367,20 +1942,13 @@ void StgFEM_StandardConditionFunctions_G
}
-void StgFEM_StandardConditionFunctions_WarsTemperature( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_WarsTemperature(const double *coord, void* _context, void* _result )
{
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
double EAEnd, WarsStart, WarsHeight, WarsTTop,
WarsTBottom, h, maxY;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
EAEnd = Dictionary_GetDouble( dictionary, "EAEnd");
WarsStart = Dictionary_GetDouble( dictionary, "WarsStart");
@@ -2398,20 +1966,13 @@ void StgFEM_StandardConditionFunctions_W
*result=WarsTBottom + ((coord[1]-h)/(maxY-h))*(WarsTTop-WarsTBottom);
}
-void StgFEM_StandardConditionFunctions_Quadratic( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_Quadratic(const double *coord, void* _context, void* _result )
{
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
int dim;
double a, b, c;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
dim = Dictionary_GetInt( dictionary, "Quadratic_Dim");
a = Dictionary_GetDouble( dictionary, "Quadratic_Constant");
@@ -2423,103 +1984,87 @@ void StgFEM_StandardConditionFunctions_Q
int Binary_Search(double *data, int s, int e, double value);
-void StgFEM_StandardConditionFunctions_FileN( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result, int file_num, double **coords, double **data);
+void StgFEM_StandardConditionFunctions_FileN(const double *coord, void* _context, void* _result, int file_num, double **coords, double **data);
-void StgFEM_StandardConditionFunctions_File1( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File1(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,1,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,1,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File2( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File2(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,2,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,2,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File3(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,3,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,3,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File4(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,4,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,4,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File5( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File5(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,5,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,5,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File6( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File6(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,6,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,6,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File7( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File7(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,7,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,7,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File8( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File8(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,8,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,8,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File9( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File9(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,9,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,9,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_File10( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result )
+void StgFEM_StandardConditionFunctions_File10(const double *coord, void* _context, void* _result )
{
static double *coords=NULL;
static double *data=NULL;
- StgFEM_StandardConditionFunctions_FileN(node_lI,var_I,_context,_result,10,
- &coords,&data);
+ StgFEM_StandardConditionFunctions_FileN(coord,_context,_result,10,&coords,&data);
}
-void StgFEM_StandardConditionFunctions_FileN( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result, int file_num, double **coords, double **data)
+void StgFEM_StandardConditionFunctions_FileN(const double *coord, void* _context, void* _result, int file_num, double **coords, double **data)
{
FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
Dictionary* dictionary = context->dictionary;
double* result = (double*) _result;
- double* coord;
int dim, dim2, dim3, i, j, k;
char *filename;
int N, N2, N3, ndims;
double factor, factor2, factor3;
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
char fileN_number[10], fileN_dim[15], fileN_dim2[15], fileN_dim3[15],
fileN_name[128], fileN_N[15], fileN_N2[15], fileN_N3[15];
@@ -2631,6 +2176,7 @@ void StgFEM_StandardConditionFunctions_F
"The range in the file '%s' does not cover this value %g\nIt only covers %g to %g in the %d direction.\n",
filename,coord[dim3],(*coords)[N+N2],(*coords)[N+N2+N3-1],dim2);
+ // i=std::lower_bound(coords,coords+N,coord[dim])-coords;
i=Binary_Search(*coords,0,N-1,coord[dim]);
factor=((*coords)[i+1]-coord[dim])/((*coords)[i+1]-(*coords)[i]);
@@ -2688,110 +2234,89 @@ int Binary_Search(double *data, int s, i
return start;
}
-void StgFEM_StandardConditionFunctions_EquationN(Node_LocalIndex node_lI,
- Variable_Index var_I,
+void StgFEM_StandardConditionFunctions_EquationN(const double *coord,
void* _context,
void* _result,
std::string &equation_string,
const int equation_number);
-void StgFEM_StandardConditionFunctions_Equation1(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation1(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,1);
}
-void StgFEM_StandardConditionFunctions_Equation2(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation2(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,2);
}
-void StgFEM_StandardConditionFunctions_Equation3(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation3(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,3);
}
-void StgFEM_StandardConditionFunctions_Equation4(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation4(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,4);
}
-void StgFEM_StandardConditionFunctions_Equation5(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation5(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,5);
}
-void StgFEM_StandardConditionFunctions_Equation6(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation6(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,6);
}
-void StgFEM_StandardConditionFunctions_Equation7(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation7(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,7);
}
-void StgFEM_StandardConditionFunctions_Equation8(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation8(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,8);
}
-void StgFEM_StandardConditionFunctions_Equation9(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation9(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,9);
}
-void StgFEM_StandardConditionFunctions_Equation10(Node_LocalIndex node_lI,
- Variable_Index var_I,
- void* _context,
- void* _result)
+void StgFEM_StandardConditionFunctions_Equation10(const double *coord,
+ void* _context, void* _result)
{
static std::string equation_string;
- StgFEM_StandardConditionFunctions_EquationN(node_lI,var_I,_context,_result,
+ StgFEM_StandardConditionFunctions_EquationN(coord,_context,_result,
equation_string,10);
}
@@ -2804,19 +2329,14 @@ mu::value_type* StgFEM_StandardCondition
return &(*(variables.begin()));
}
-void StgFEM_StandardConditionFunctions_EquationN(Node_LocalIndex node_lI,
- Variable_Index var_I,
+void StgFEM_StandardConditionFunctions_EquationN(const double *coord,
void* _context,
void* _result,
std::string &equation_string,
const int equation_number)
{
FiniteElementContext *context=(FiniteElementContext*)_context;
- FeVariable *feVariable=(FeVariable*)FieldVariable_Register_GetByName
- (context->fieldVariable_Register, "VelocityField");
- FeMesh *mesh(feVariable->feMesh);
Dictionary *dictionary=context->dictionary;
- double *coord=Mesh_GetVertex(mesh,node_lI);
double *result=(double*)_result;
if(equation_string.empty())
@@ -2833,19 +2353,20 @@ void StgFEM_StandardConditionFunctions_E
try
{
mu::Parser p;
- p.DefineVar("x", coord);
- p.DefineVar("y", coord+1);
- p.DefineVar("z", coord+2);
+ double temp[]={coord[0], coord[1], coord[2]};
+ p.DefineVar("x", temp);
+ p.DefineVar("y", temp+1);
+ p.DefineVar("z", temp+2);
p.DefineVar("t", &(context->currentTime));
p.SetVarFactory(StgFEM_StandardConditionFunctions_AddVariable, &p);
p.SetExpr(equation_string);
*result=p.Eval();
- Journal_Printf(Journal_Register( Info_Type,"StgFEM_StandardConditionFunctions_EquationN"),
- "Equation %d: x=%g y=%g z=%g t=%g result=%g\n",
- equation_number,coord[0],coord[1],coord[2],
- context->currentTime,*result);
+ Journal_PrintfL(Journal_Register( Info_Type,"StgFEM_StandardConditionFunctions_EquationN"),
+ 2, "Equation %d: x=%g y=%g z=%g t=%g result=%g\n",
+ equation_number,coord[0],coord[1],coord[2],
+ context->currentTime,*result);
}
catch (mu::Parser::exception_type &e)
{
diff -r 5577e2b0ce09 -r e0b482223187 plugins/StandardConditionFunctions/StandardConditionFunctions.h
--- a/plugins/StandardConditionFunctions/StandardConditionFunctions.h Sun Oct 16 05:35:21 2011 -0700
+++ b/plugins/StandardConditionFunctions/StandardConditionFunctions.h Sun Oct 16 05:39:40 2011 -0700
@@ -59,89 +59,83 @@ typedef struct {
Index StgFEM_StandardConditionFunctions_Register( PluginsManager* pluginsManager );
-void StgFEM_StandardConditionFunctions_SolidBodyRotation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_PartialRotationX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_PartialRotationY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_TaperedRotationX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_TaperedRotationY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SimpleShear( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SimpleShearInverted( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_ShearZ( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_Extension( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_PartialLid_TopLayer( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
-void StgFEM_StandardConditionFunctions_LinearInterpolationLid( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
-void StgFEM_StandardConditionFunctions_Lid_RampWithCentralMax( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
+void StgFEM_StandardConditionFunctions_SolidBodyRotation(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_PartialRotationX(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_PartialRotationY(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_TaperedRotationX(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_TaperedRotationY(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_SimpleShear(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_SimpleShearInverted(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_ShearZ(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_Extension(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_PartialLid_TopLayer(const double *coord, void* _context, void* result ) ;
+void StgFEM_StandardConditionFunctions_LinearInterpolationLid(const double *coord, void* _context, void* result ) ;
+void StgFEM_StandardConditionFunctions_Lid_RampWithCentralMax(const double *coord, void* _context, void* result ) ;
-void StgFEM_StandardConditionFunctions_SinusoidalLid( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
-void StgFEM_StandardConditionFunctions_CornerOnly( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result ) ;
-void StgFEM_StandardConditionFunctions_LinearWithSinusoidalPerturbation( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_Trigonometry( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void Stg_FEM_VelicTemperatureIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void Stg_FEM_VelicTemperatureIC_SolB( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_AnalyticalTemperatureIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_TemperatureCosineHill( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SinusoidalExtension( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_StepFunction( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct1( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct2( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StG_FEM_StandardConditionFunctions_StepFunctionProduct4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_TemperatureProfile( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StG_FEM_StandardConditionFunctions_Gaussian( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_MovingStepFunction( Node_LocalIndex nodeInd, Variable_Index varInd, void* _ctx, void* _result );
-void StgFEM_StandardConditionFunctions_SpecRidge3D( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SpectralBCX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SpectralBCY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SpectralBCZ( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SpectralPressureBCX( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_SpectralPressureBCY( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_ErrorFunc( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_SinusoidalLid(const double *coord, void* _context, void* result ) ;
+void StgFEM_StandardConditionFunctions_LinearWithSinusoidalPerturbation(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_Trigonometry(const double *coord, void* _context, void* _result ) ;
+void Stg_FEM_VelicTemperatureIC(const double *coord, void* _context, void* _result ) ;
+void Stg_FEM_VelicTemperatureIC_SolB(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_AnalyticalTemperatureIC(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_TemperatureCosineHill(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_SinusoidalExtension(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_EdgeDriveConvectionIC(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_ThermalEdgeDriveConvectionIC(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_StepFunction(const double *coord, void* _context, void* _result ) ;
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct1(const double *coord, void* _context, void* _result ) ;
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct2(const double *coord, void* _context, void* _result ) ;
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct3(const double *coord, void* _context, void* _result ) ;
+void StG_FEM_StandardConditionFunctions_StepFunctionProduct4(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_TemperatureProfile(const double *coord, void* _context, void* _result ) ;
+void StG_FEM_StandardConditionFunctions_Gaussian(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_MovingStepFunction(const double *coord, void* _ctx, void* _result );
+void StgFEM_StandardConditionFunctions_SpecRidge3D(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_ErrorFunc(const double *coord, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_LinearVelocityLeftWall( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result );
-void StgFEM_StandardConditionFunctions_LinearVelocityRightWall( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* result );
+void StgFEM_StandardConditionFunctions_LinearVelocityLeftWall(const double *coord, void* _context, void* result );
+void StgFEM_StandardConditionFunctions_LinearVelocityRightWall(const double *coord, void* _context, void* result );
-void StgFEM_StandardConditionFunctions_ConvectionBenchmark( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_ConstantVector( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_ConstantVelocity( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_ERF( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_ERFC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_RubberSheet( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_ConvectionBenchmark(const double *coord, void* _context, void* _result ) ;
+void StgFEM_StandardConditionFunctions_ConstantVector(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_ConstantVelocity(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_ERF(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_ERFC(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_RubberSheet(const double *coord, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_GaussianDistribution( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_GravitationalPotential( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_1DGaussianDistribution( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_HalfContainer( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_ConstantValue( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_DiagonalLine( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_DeltaFunction( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_GaussianDistribution(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_GravitationalPotential(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_1DGaussianDistribution(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_HalfContainer(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_ConstantValue(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_DiagonalLine(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_DeltaFunction(const double *coord, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_InflowBottom( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_GaussianTube( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_WarsTemperature( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Quadratic( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File1( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File2( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File5( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File6( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File7( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File8( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File9( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_File10( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation1( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation2( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation5( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation6( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation7( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation8( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation9( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
-void StgFEM_StandardConditionFunctions_Equation10( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_InflowBottom(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_GaussianTube(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_WarsTemperature(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Quadratic(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File1(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File2(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File3(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File4(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File5(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File6(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File7(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File8(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File9(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_File10(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation1(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation2(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation3(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation4(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation5(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation6(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation7(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation8(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation9(const double *coord, void* _context, void* _result );
+void StgFEM_StandardConditionFunctions_Equation10(const double *coord, void* _context, void* _result );
#endif
More information about the CIG-COMMITS
mailing list