[cig-commits] r3938 - in long/3D/Gale/trunk/src/StGermain: .
Discretisation/Shape/src
walter at geodynamics.org
walter at geodynamics.org
Thu Jul 6 02:06:03 PDT 2006
Author: walter
Date: 2006-07-06 02:06:03 -0700 (Thu, 06 Jul 2006)
New Revision: 3938
Modified:
long/3D/Gale/trunk/src/StGermain/
long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c
long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h
Log:
r2466 at earth: boo | 2006-07-06 02:02:38 -0700
r2455 at earth (orig r3658): AlanLo | 2006-06-28 21:39:01 -0700
fixed this guy up for better math language
also corrected to volume (area 2d) calculation for any phase
Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
- 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2465
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3657
+ 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2466
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3658
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c 2006-07-06 09:05:58 UTC (rev 3937)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c 2006-07-06 09:06:03 UTC (rev 3938)
@@ -58,7 +58,7 @@
double offset,
XYZ width,
double delta,
- double preiod,
+ double period,
double phase )
{
BelowCosinePlane* self = (BelowCosinePlane*) _BelowCosinePlane_DefaultNew( name );
@@ -73,7 +73,7 @@
offset,
width,
delta,
- preiod,
+ period,
phase ) ;
return self;
}
@@ -122,13 +122,13 @@
return self;
}
-void _BelowCosinePlane_Init( void* belowPlane, double offset, XYZ width, double delta, double preiod, double phase ) {
+void _BelowCosinePlane_Init( void* belowPlane, double offset, XYZ width, double delta, double period, double phase ) {
BelowCosinePlane* self = (BelowCosinePlane*)belowPlane;
_BelowPlane_Init( self, offset, width );
self->delta = delta;
- self->preiod = preiod;
- self->radPreiod = 2 * M_PI * preiod;
+ self->period = period;
+ self->radPeriod = M_PI * period / 180.0;
self->phase = phase;
}
@@ -143,13 +143,13 @@
double offset,
XYZ width,
double delta,
- double preiod,
+ double period,
double phase )
{
BelowCosinePlane* self = (BelowCosinePlane*)belowPlane;
BelowPlane_InitAll( self, dim, centre, alpha, beta, gamma, offset, width );
- _BelowCosinePlane_Init( self, offset, width, delta, preiod, phase );
+ _BelowCosinePlane_Init( self, offset, width, delta, period, phase );
}
@@ -181,7 +181,7 @@
newBelowCosinePlane = (BelowCosinePlane*)_BelowPlane_Copy( self, dest, deep, nameExt, ptrMap );
newBelowCosinePlane->delta = self->delta;
- newBelowCosinePlane->preiod = self->preiod;
+ newBelowCosinePlane->period = self->period;
newBelowCosinePlane->phase = self->phase;
return (void*)newBelowCosinePlane;
@@ -209,16 +209,16 @@
void _BelowCosinePlane_Construct( void* belowPlane, Stg_ComponentFactory* cf ) {
BelowCosinePlane* self = (BelowCosinePlane*) belowPlane;
double delta;
- double preiod;
+ double period;
double phase;
_BelowPlane_Construct( self, cf );
delta = Stg_ComponentFactory_GetDouble( cf, self->name, "delta", 0.5 );
- preiod = Stg_ComponentFactory_GetDouble( cf, self->name, "preiod", 1.0 );
+ period = Stg_ComponentFactory_GetDouble( cf, self->name, "period", 1.0 );
phase = Stg_ComponentFactory_GetDouble( cf, self->name, "phase", 0.0 );
- _BelowCosinePlane_Init( self, self->offset, self->width, delta, preiod, phase );
+ _BelowCosinePlane_Init( self, self->offset, self->width, delta, period, phase );
}
void _BelowCosinePlane_Build( void* belowPlane, void* data ) {
@@ -261,7 +261,7 @@
x = newCoord[ I_AXIS ];
- y = self->offset + self->delta * cos( self->radPreiod * ( x + self->phase ) );
+ y = self->offset + self->delta * cos( ( self->radPeriod * x ) + self->phase );
if ( fabs( newCoord[ J_AXIS ] < y) ) {
return True;
@@ -273,14 +273,21 @@
BelowCosinePlane* self = (BelowCosinePlane*)belowPlane;
double volume;
- double numRepeat;
-
if ( self->dim == 2 ) {
- /* This does not work properly if phase is non-zero */
- numRepeat = self->width[ I_AXIS ] / ( self->preiod * 4.0 );
- volume = (self->offset * self->width[ I_AXIS ]) +
- numRepeat * self->delta *
- ( sin( self->radPreiod * ( self->width[ I_AXIS ] + self->phase ) ) - sin( self->radPreiod * ( self->phase ) ) );
+ /*
+ * y = delta * cos( radPeriod * x + phase ) + offset
+ *
+ * A = [ (delta/radPeriod) * sin( radPeriod * x + phase ) + offset * x ] (from phase to width)
+ */
+ volume =
+ (
+ ( self->delta / self->radPeriod ) * sin( (self->radPeriod * self->width[ I_AXIS ]) + self->phase ) +
+ ( self->offset * self->width[ I_AXIS ] )
+ )
+ -
+ (
+ ( self->delta / self->radPeriod ) * sin( self->phase ) + ( self->offset * self->phase )
+ );
}
else {
/* does not work in 3D right now...work out the integral later */
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h 2006-07-06 09:05:58 UTC (rev 3937)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h 2006-07-06 09:06:03 UTC (rev 3938)
@@ -49,8 +49,8 @@
/* Virtual Info */\
\
double delta; \
- double preiod; \
- double radPreiod; \
+ double period; \
+ double radPeriod; \
double phase;
struct BelowCosinePlane { __BelowCosinePlane };
@@ -75,7 +75,7 @@
Stg_Shape_CalculateVolumeFunction* _calculateVolume,
Name name );
- void _BelowCosinePlane_Init( void* belowPlane, double offset, XYZ width, double delta, double preiod, double phase ) ;
+ void _BelowCosinePlane_Init( void* belowPlane, double offset, XYZ width, double delta, double period, double phase ) ;
void BelowCosinePlane_InitAll(
void* belowPlane,
Dimension_Index dim,
@@ -86,7 +86,7 @@
double offset,
XYZ width,
double delta,
- double preiod,
+ double period,
double phase );
/* Stg_Class_Delete BelowCosinePlane implementation */
More information about the cig-commits
mailing list