[cig-commits] r3929 - in long/3D/Gale/trunk/src/PICellerator: . MaterialPoints/src

walter at geodynamics.org walter at geodynamics.org
Thu Jul 6 02:03:56 PDT 2006


Author: walter
Date: 2006-07-06 02:03:56 -0700 (Thu, 06 Jul 2006)
New Revision: 3929

Added:
   long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorW.h
Modified:
   long/3D/Gale/trunk/src/PICellerator/
Log:
 r419 at earth:  boo | 2006-07-06 02:00:48 -0700
  r408 at earth (orig r347):  WendySharples | 2006-07-05 04:01:23 -0700
  this doesnt advect the particles if they are positioned at a depth y=0.99 and above
  
  
 



Property changes on: long/3D/Gale/trunk/src/PICellerator
___________________________________________________________________
Name: svk:merge
   - 00de75e2-39f1-0310-8538-9683d00a49cc:/trunk:346
aee11096-cf10-0410-a191-eea5772ba81f:/cig:418
   + 00de75e2-39f1-0310-8538-9683d00a49cc:/trunk:347
aee11096-cf10-0410-a191-eea5772ba81f:/cig:419

Added: long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorW.h
===================================================================
--- long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorW.h	2006-07-06 09:03:53 UTC (rev 3928)
+++ long/3D/Gale/trunk/src/PICellerator/MaterialPoints/src/SwarmAdvectorW.h	2006-07-06 09:03:56 UTC (rev 3929)
@@ -0,0 +1,130 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**
+** Copyright (C), 2003-2006, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street,
+**	Melbourne, 3053, Australia.
+** Copyright (c) 2005-2006, Monash Cluster Computing, Building 28, Monash University Clayton Campus,
+**	Victoria, 3800, Australia
+**
+** Primary Contributing Organisations:
+**	Victorian Partnership for Advanced Computing Ltd, Computational Software Development - http://csd.vpac.org
+**	Australian Computational Earth Systems Simulator - http://www.access.edu.au
+**	Monash Cluster Computing - http://www.mcc.monash.edu.au
+**
+** Contributors:
+**	Robert Turnbull, Research Assistant, Monash University. (robert.turnbull at sci.monash.edu.au)
+**	Patrick D. Sunter, Software Engineer, VPAC. (patrick at vpac.org)
+**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
+**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
+**	David May, PhD Student, Monash University (david.may at sci.monash.edu.au)
+**	Vincent Lemiale, Postdoctoral Fellow, Monash University. (vincent.lemiale at sci.monash.edu.au)
+**	Julian Giordani, Research Assistant, Monash University. (julian.giordani at sci.monash.edu.au)
+**	Louis Moresi, Associate Professor, Monash University. (louis.moresi at sci.monash.edu.au)
+**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
+**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
+**	David Stegman, Postdoctoral Fellow, Monash University. (david.stegman at sci.monash.edu.au)
+**	Wendy Sharples, PhD Student, Monash University (wendy.sharples at sci.monash.edu.au)
+**
+**  This library is free software; you can redistribute it and/or
+**  modify it under the terms of the GNU Lesser General Public
+**  License as published by the Free Software Foundation; either
+**  version 2.1 of the License, or (at your option) any later version.
+**
+**  This library is distributed in the hope that it will be useful,
+**  but WITHOUT ANY WARRANTY; without even the implied warranty of
+**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+**  Lesser General Public License for more details.
+**
+**  You should have received a copy of the GNU Lesser General Public
+**  License along with this library; if not, write to the Free Software
+**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+**
+*/
+/** \file
+**  Role:
+**	Special swarm advector which doesn't advect particles when they are is positioned above y = 0.99 even
+**	for 3D problems.
+**
+** Assumptions:
+**
+** Comments:
+**
+** $Id: SwarmAdvectorW.h 189 2005-10-20 00:39:29Z wendy sharples$
+**
+**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#ifndef __PICellerator_MaterialPoints_SwarmAdvectorW_h__
+#define __PICellerator_MaterialPoints_SwarmAdvectorW_h__
+
+	/* Textual name of this class */
+	extern const Type SwarmAdvectorW_Type;
+
+	/* SwarmAdvectorW information */
+	#define __SwarmAdvectorW \
+		/* General info */ \
+		__SwarmAdvector 	/** Now inherits from SwarmAdvector class */
+
+	struct SwarmAdvectorW { __SwarmAdvectorW };
+	
+	/*---------------------------------------------------------------------------------------------------------------------
+	** Constructors
+	*/
+	SwarmAdvectorW* SwarmAdvectorW_New(
+		Name                                       name,
+		TimeIntegrator*                            timeIntegrator,
+		FeVariable*                                velocityField,
+		Bool                                       allowFallbackToFirstOrder,
+		MaterialPointsSwarm*                       swarm,
+		PeriodicBoundariesManager*                 periodicBCsManager );
+
+	SwarmAdvectorW* _SwarmAdvectorW_New(
+		SizeT                                      _sizeOfSelf, 
+		Type                                       type,
+		Stg_Class_DeleteFunction*                  _delete,
+		Stg_Class_PrintFunction*                   _print,
+		Stg_Class_CopyFunction*                    _copy, 
+		Stg_Component_DefaultConstructorFunction*  _defaultConstructor,
+		Stg_Component_ConstructFunction*           _construct,
+		Stg_Component_BuildFunction*               _build,
+		Stg_Component_InitialiseFunction*          _initialise,
+		Stg_Component_ExecuteFunction*             _execute,
+		Stg_Component_DestroyFunction*             _destroy,		
+		TimeIntegratee_CalculateTimeDerivFunction* _calculateTimeDeriv,
+		TimeIntegratee_IntermediateFunction*       _intermediate,
+		Name                                       name );
+
+	void _SwarmAdvectorW_Init( 
+		SwarmAdvectorW*                             self );
+
+	void _SwarmAdvectorW_Delete( void* materialSwarm );
+	void _SwarmAdvectorW_Print( void* materialSwarm, Stream* stream );
+	#define SwarmAdvectorW_Copy( self ) \
+		(SwarmAdvectorW*) Stg_Class_Copy( self, NULL, False, NULL, NULL )
+	#define SwarmAdvectorW_DeepCopy( self ) \
+		(SwarmAdvectorW*) Stg_Class_Copy( self, NULL, True, NULL, NULL )
+	void* _SwarmAdvectorW_Copy( void* materialSwarm, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	
+	void* _SwarmAdvectorW_DefaultNew( Name name ) ;
+	void _SwarmAdvectorW_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _SwarmAdvectorW_Build( void* materialSwarm, void* data ) ;
+	void _SwarmAdvectorW_Initialise( void* materialSwarm, void* data ) ;
+	void _SwarmAdvectorW_Execute( void* materialSwarm, void* data );
+	void _SwarmAdvectorW_Destroy( void* materialSwarm, void* data ) ;
+	Bool _SwarmAdvectorW_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) ;
+	void _SwarmAdvectorW_Intermediate( void* swarmAdvector, Index array_I ) ;
+	
+		
+	/*---------------------------------------------------------------------------------------------------------------------
+	** Private functions
+	*/
+	
+	/*---------------------------------------------------------------------------------------------------------------------
+	** Entry Point Hooks
+	*/
+	void SwarmAdvectorW_AdvectionSetup( TimeIntegrator* timeIntegrator, SwarmAdvectorW* self ) ;
+	void SwarmAdvectorW_AdvectionFinish( TimeIntegrator* timeIntegrator, SwarmAdvectorW* self ) ;
+	
+	/*---------------------------------------------------------------------------------------------------------------------
+	** Public functions
+	*/
+
+#endif 



More information about the cig-commits mailing list