[cig-commits] commit: Add in NearestNeighborMapper

Mercurial hg at geodynamics.org
Sun Sep 18 12:47:35 PDT 2011


changeset:   426:1d2e51c48e20
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Sun Sep 18 12:46:03 2011 -0700
files:       MaterialPoints/src/Init.cxx MaterialPoints/src/IntegrationPointsSwarm.cxx MaterialPoints/src/MaterialPoints.h MaterialPoints/src/NearestNeighborMapper.cxx MaterialPoints/src/NearestNeighborMapper.h MaterialPoints/src/NearestNeighborMapper.meta MaterialPoints/src/types.h
description:
Add in NearestNeighborMapper


diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/Init.cxx
--- a/MaterialPoints/src/Init.cxx	Sun Sep 18 12:45:49 2011 -0700
+++ b/MaterialPoints/src/Init.cxx	Sun Sep 18 12:46:03 2011 -0700
@@ -72,6 +72,7 @@ Bool PICellerator_MaterialPoints_Init( i
 	Stg_ComponentRegister_Add( componentsRegister, CoincidentMapper_Type, "0", _CoincidentMapper_DefaultNew  );
 	Stg_ComponentRegister_Add( componentsRegister, GaussCoincidentMapper_Type, "0", _GaussCoincidentMapper_DefaultNew  );
 	Stg_ComponentRegister_Add( componentsRegister, GaussMapper_Type, "0", _GaussMapper_DefaultNew  );
+	Stg_ComponentRegister_Add( componentsRegister, NearestNeighborMapper_Type, "0", _NearestNeighborMapper_DefaultNew  );
 	
 	Stg_ComponentRegister_Add( componentsRegister, SwarmAdvector_Type, "0", _SwarmAdvector_DefaultNew  );
 	Stg_ComponentRegister_Add( componentsRegister, SwarmAdvectionInAPlane_Type, "0", _SwarmAdvectionInAPlane_DefaultNew  );
@@ -95,7 +96,8 @@ Bool PICellerator_MaterialPoints_Init( i
 	RegisterParent( Materials_Register_Type,        NamedObject_Register_Type );
 	RegisterParent( MaterialPointsSwarm_Type,       Swarm_Type );
 	RegisterParent( OneToOneMapper_Type,            IntegrationPointMapper_Type );
-	RegisterParent(OneToManyMapper_Type, IntegrationPointMapper_Type);
+	RegisterParent( OneToManyMapper_Type, IntegrationPointMapper_Type);
+	RegisterParent( NearestNeighborMapper_Type, IntegrationPointMapper_Type);
 	RegisterParent( ParticleFeVariable_Type,        FeVariable_Type );
 	RegisterParent( PeriodicBoundariesManager_Type, Stg_Component_Type );
 	RegisterParent( SwarmAdvector_Type,             TimeIntegrand_Type );
diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/IntegrationPointsSwarm.cxx
--- a/MaterialPoints/src/IntegrationPointsSwarm.cxx	Sun Sep 18 12:45:49 2011 -0700
+++ b/MaterialPoints/src/IntegrationPointsSwarm.cxx	Sun Sep 18 12:46:03 2011 -0700
@@ -189,6 +189,7 @@ void _IntegrationPointsSwarm_AssignFromX
 			weights != NULL ||
 			(weights == NULL && (Stg_Class_IsInstance( mapper, GaussMapper_Type ) ||
 					     Stg_Class_IsInstance( mapper, GaussCoincidentMapper_Type) ||
+					     Stg_Class_IsInstance( mapper, NearestNeighborMapper_Type) ||
 					     !strcmp( mapper->type, "PCDVCGaussMapper"))),
 			Journal_MyStream( Error_Type, self ),
 			"In func %s, %s which is a %s must either have a %s or use %s\n",
@@ -430,6 +431,7 @@ void IntegrationPointsSwarm_RemapIntegra
 		Stream* errorStream = Journal_Register( Error_Type, (Name)self->type  );
 		Journal_Firewall( Stg_Class_IsInstance( self->mapper, GaussMapper_Type ) ||
 				  Stg_Class_IsInstance( self->mapper, GaussCoincidentMapper_Type ) ||
+				  Stg_Class_IsInstance( self->mapper, NearestNeighborMapper_Type ) ||
 				  !strcmp(self->mapper->type, "PCDVCGaussMapper"), errorStream,
 			"Error - in %s(): for IntegrationPointSwarm \"%s\", no weights calculator provided "
 			"and mapper is not a %s.\n", GaussMapper_Type );
diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/MaterialPoints.h
--- a/MaterialPoints/src/MaterialPoints.h	Sun Sep 18 12:45:49 2011 -0700
+++ b/MaterialPoints/src/MaterialPoints.h	Sun Sep 18 12:46:03 2011 -0700
@@ -60,6 +60,7 @@
 	#include "IntegrationPointMapper.h"
 	#include "OneToOneMapper.h"
         #include "OneToManyMapper.h"
+        #include "NearestNeighborMapper.h"
 	#include "CoincidentMapper.h"
 	#include "GaussCoincidentMapper.h"
 	#include "GaussMapper.h"
diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/NearestNeighborMapper.cxx
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MaterialPoints/src/NearestNeighborMapper.cxx	Sun Sep 18 12:46:03 2011 -0700
@@ -0,0 +1,219 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**
+** 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
+**
+** $Id:  $
+**
+**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#include <mpi.h>
+#include <StGermain/StGermain.h>
+#include <StgDomain/StgDomain.h>
+#include <StgFEM/StgFEM.h>
+#include <PICellerator/PopulationControl/PopulationControl.h>
+#include <PICellerator/Weights/Weights.h>
+
+#include <assert.h>
+#include <string.h>
+#include <math.h>
+
+#include "MaterialPoints.h"
+
+const Type NearestNeighborMapper_Type = "NearestNeighborMapper";
+
+NearestNeighborMapper* _NearestNeighborMapper_New( NEARESTNEIGHBORMAPPER_DEFARGS ) {
+	NearestNeighborMapper* result;
+
+	result = (NearestNeighborMapper*)_IntegrationPointMapper_New( INTEGRATIONPOINTMAPPER_PASSARGS );
+        result->swarm=_swarm;
+
+	return result;
+}
+
+void* _NearestNeighborMapper_DefaultNew( Name name ) {
+  /* Variables set in this function */
+  SizeT _sizeOfSelf = sizeof(NearestNeighborMapper);
+  Type type = NearestNeighborMapper_Type;
+  Stg_Class_DeleteFunction* _delete = _NearestNeighborMapper_Delete;
+  Stg_Class_PrintFunction*_print = _NearestNeighborMapper_Print;
+  Stg_Class_CopyFunction*_copy = _NearestNeighborMapper_Copy;
+  Stg_Component_DefaultConstructorFunction*
+    _defaultConstructor = _NearestNeighborMapper_DefaultNew;
+  Stg_Component_ConstructFunction*
+    _construct = _NearestNeighborMapper_AssignFromXML;
+  Stg_Component_BuildFunction*
+    _build = _NearestNeighborMapper_Build;
+  Stg_Component_InitialiseFunction*
+    _initialise = _NearestNeighborMapper_Initialise;
+  Stg_Component_ExecuteFunction*
+    _execute = _NearestNeighborMapper_Execute;
+  Stg_Component_DestroyFunction*
+    _destroy = _NearestNeighborMapper_Destroy;
+  AllocationType nameAllocationType = NON_GLOBAL;
+  IntegrationPointMapper_MapFunction* _map = _NearestNeighborMapper_Map;
+  IntegrationPointMapper_GetMaterialPointsSwarmsFunction*
+    _getMaterialPointsSwarms = _NearestNeighborMapper_GetMaterialPointsSwarms;
+  IntegrationPointMapper_GetMaterialIndexOnFunction*
+    _getMaterialIndexOn = _NearestNeighborMapper_GetMaterialIndexOn;
+  IntegrationPointMapper_GetExtensionOnFunction*
+    _getExtensionOn = _NearestNeighborMapper_GetExtensionOn;
+  IntegrationPointMapper_GetDoubleFromExtension*
+    _getDoubleFromExtension = _NearestNeighborMapper_GetDoubleFromExtension;
+  IntegrationPointMapper_GetDoubleFromExtension*
+    _getDoubleFromMaterial = _NearestNeighborMapper_GetDoubleFromMaterial;
+  IntegrationPointsSwarm *_swarm=NULL;
+
+  return _NearestNeighborMapper_New( NEARESTNEIGHBORMAPPER_PASSARGS );
+}
+
+void _NearestNeighborMapper_Init( void* mapper, IntegrationPointsSwarm* swarm ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+
+	self->errorStream = Journal_MyStream( Error_Type, self );
+	self->swarm = swarm;
+}
+
+void _NearestNeighborMapper_Delete( void* mapper ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+	
+	_IntegrationPointMapper_Delete( self );
+}
+void _NearestNeighborMapper_Print( void* mapper, Stream* stream ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+	
+	_IntegrationPointMapper_Print( self, stream );
+	Stream_Indent( stream );
+	Stg_Class_Print( self->swarm, stream );
+	Stream_UnIndent( stream );
+}
+void* _NearestNeighborMapper_Copy( const void* mapper, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+	NearestNeighborMapper* newCopy;
+	
+	newCopy = (NearestNeighborMapper*)_IntegrationPointMapper_Copy( self, dest, deep, nameExt, ptrMap );
+	newCopy->swarm = (IntegrationPointsSwarm*)Stg_Class_Copy( self->swarm, NULL, deep, nameExt, ptrMap );
+
+	return newCopy;
+}
+
+void _NearestNeighborMapper_AssignFromXML( void* mapper, Stg_ComponentFactory* cf, void* data ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+	IntegrationPointsSwarm* swarm;
+	
+	_IntegrationPointMapper_AssignFromXML( self, cf, data );
+
+	swarm =
+          Stg_ComponentFactory_ConstructByKey(cf,self->name,"MappedSwarm",
+                                              IntegrationPointsSwarm,True,data);
+
+	_NearestNeighborMapper_Init( self, swarm );
+}
+
+void _NearestNeighborMapper_Build( void* mapper, void* data ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+
+	_IntegrationPointMapper_Build( mapper, data );
+	Stg_Component_Build( self->swarm, data, False );
+	
+}
+void _NearestNeighborMapper_Initialise( void* mapper, void* data ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+
+	_IntegrationPointMapper_Initialise( mapper, data );
+	Stg_Component_Initialise( self->swarm, data, False );
+}
+void _NearestNeighborMapper_Execute( void* mapper, void* data ) {}
+
+void _NearestNeighborMapper_Destroy( void* mapper, void* data ) {
+	NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+
+	_IntegrationPointMapper_Destroy( self, data );
+}
+
+/* Just call the embedded swarm remapper */
+void _NearestNeighborMapper_Map(void* mapper) {
+  NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+  IntegrationPointMapper_Map(self->swarm->mapper);
+}
+
+MaterialPointsSwarm** _NearestNeighborMapper_GetMaterialPointsSwarms
+( void* mapper, Index* count ) {
+  NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+  return IntegrationPointMapper_GetMaterialPointsSwarms(self->swarm->mapper,
+                                                        count);
+}
+
+Material_Index _NearestNeighborMapper_GetMaterialIndexOn
+( void* mapper, void* point ) {
+  NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+  abort();
+  return IntegrationPointMapper_GetMaterialIndexOn(self->swarm->mapper,point);
+}
+
+void* _NearestNeighborMapper_GetExtensionOn( void* mapper, void* point,
+                                             ExtensionInfo_Index extHandle ) {
+  NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+  abort();
+  return IntegrationPointMapper_GetExtensionOn(self->swarm->mapper,point,
+                                               extHandle);
+}
+
+double _NearestNeighborMapper_GetDoubleFromExtension
+(void* mapper,
+ void* intPoint,
+ ExtensionInfo_Index extHandle,
+ int offs) {
+  NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+  abort();
+  return IntegrationPointMapper_GetDoubleFromExtension(self->swarm->mapper,
+                                                       intPoint,
+                                                       extHandle, offs);
+}
+
+double _NearestNeighborMapper_GetDoubleFromMaterial
+(void* mapper,
+ void* intPoint,
+ ExtensionInfo_Index extHandle,
+ int offs) {
+  NearestNeighborMapper* self = (NearestNeighborMapper*)mapper;
+  abort();
+  return IntegrationPointMapper_GetDoubleFromMaterial(self->swarm->mapper,
+                                                      intPoint,
+                                                      extHandle, offs);
+}
diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/NearestNeighborMapper.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MaterialPoints/src/NearestNeighborMapper.h	Sun Sep 18 12:46:03 2011 -0700
@@ -0,0 +1,119 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**
+** 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
+** Copyright (c) 2011, California Institute of Technology
+**
+** 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)
+**      Walter Landry, CIG (walter at geodynamics.org)
+**
+**  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:
+**     An IntegrationPointMapper which maps the nearest neighbors of a
+**     IntegrationPointsSwarm to an IntegrationPointsSwarm.
+**
+**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+#ifndef __PICellerator_MaterialPoints_NearestNeighborMapper_h__
+#define __PICellerator_MaterialPoints_NearestNeighborMapper_h__
+
+	extern const Type NearestNeighborMapper_Type;
+
+	/* NearestNeighborMapper information */
+	#define __NearestNeighborMapper \
+		__IntegrationPointMapper \
+		\
+		Stream*				errorStream; \
+		IntegrationPointsSwarm*		swarm; \
+
+	struct NearestNeighborMapper { __NearestNeighborMapper };
+
+	#ifndef ZERO
+	#define ZERO 0
+	#endif
+
+	#define NEARESTNEIGHBORMAPPER_DEFARGS \
+                INTEGRATIONPOINTMAPPER_DEFARGS, \
+                IntegrationPointsSwarm *_swarm
+
+	#define NEARESTNEIGHBORMAPPER_PASSARGS \
+                INTEGRATIONPOINTMAPPER_PASSARGS, \
+                _swarm
+
+NearestNeighborMapper* _NearestNeighborMapper_New( NEARESTNEIGHBORMAPPER_DEFARGS );
+
+void _NearestNeighborMapper_Init( void* mapper, IntegrationPointsSwarm* swarm );
+
+	void _NearestNeighborMapper_Delete( void* mapper );
+	void _NearestNeighborMapper_Print( void* mapper, Stream* stream );
+	#define NearestNeighborMapper_Copy( self ) \
+		(NearestNeighborMapper*) Stg_Class_Copy( self, NULL, False, NULL, NULL )
+	#define NearestNeighborMapper_DeepCopy( self ) \
+		(NearestNeighborMapper*) Stg_Class_Copy( self, NULL, True, NULL, NULL )
+	void* _NearestNeighborMapper_Copy( const void* mapper, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	
+	void* _NearestNeighborMapper_DefaultNew( Name name );
+	void _NearestNeighborMapper_AssignFromXML( void* shape, Stg_ComponentFactory* cf, void* data );
+	void _NearestNeighborMapper_Build( void* mapper, void* data ) ;
+	void _NearestNeighborMapper_Initialise( void* mapper, void* data );
+	void _NearestNeighborMapper_Execute( void* mapper, void* data );
+	void _NearestNeighborMapper_Destroy( void* mapper, void* data );
+
+        void _NearestNeighborMapper_Map(void* mapper);
+
+        MaterialPointsSwarm** _NearestNeighborMapper_GetMaterialPointsSwarms
+        ( void* mapper, Index* count );
+
+        Material_Index _NearestNeighborMapper_GetMaterialIndexOn
+        ( void* mapper, void* point );
+
+        void* _NearestNeighborMapper_GetExtensionOn
+        (void* mapper, void* point, ExtensionInfo_Index extHandle );
+
+        double _NearestNeighborMapper_GetDoubleFromExtension
+        (void* mapper,
+         void* intPoint,
+         ExtensionInfo_Index extHandle,
+         int offs);
+
+        double _NearestNeighborMapper_GetDoubleFromMaterial
+        (void* mapper,
+         void* intPoint,
+         ExtensionInfo_Index extHandle,
+         int offs);
+
+#endif
diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/NearestNeighborMapper.meta
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MaterialPoints/src/NearestNeighborMapper.meta	Sun Sep 18 12:46:03 2011 -0700
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+
+<param name="Name">NearestNeighborMapper</param>
+<param name="Author">...</param>
+<param name="Organisation">VPAC and MCC</param>
+<param name="Project">PICellerator</param>
+<param name="Location">./PICellerator/MaterialPoints/src/</param>
+<param name="Project Web">http://www.stgermainproject.org/PICellerator.html</param>
+<param name="Copyright">Copyright (C) 2005 VPAC and Monash Cluster Computing.</param>
+<param name="License">http://www.opensource.org/licenses/bsd-license.php</param>
+<param name="Parent">IntegrationPointMapper</param>
+<param name="Reference">...</param>
+<param name="Summary">...</param>
+<param name="Description">An abstract mapper which will yield a nearest neighbor mapping of integration points to material points.</param>
+
+<!--Now the interesting stuff-->
+<list name="Params">
+</list>
+
+<list name="Dependencies">
+	<struct>
+		<param name="Essential">True</param>
+		<param name="Name">MaterialPointsSwarm</param>
+		<param name="Type">MaterialPointsSwarm</param>
+		<param name="Description">The list of material points to be mapped.</param>
+	</struct>
+</list>
+
+<!-- Add an exmaple XML if possible -->
+<param name="Example">n/a</param>
+
+</StGermainData>
diff -r 45ad3f51169e -r 1d2e51c48e20 MaterialPoints/src/types.h
--- a/MaterialPoints/src/types.h	Sun Sep 18 12:45:49 2011 -0700
+++ b/MaterialPoints/src/types.h	Sun Sep 18 12:46:03 2011 -0700
@@ -63,6 +63,7 @@
 	typedef struct OneToOneMapper               OneToOneMapper;
         typedef struct OneToManyRef OneToManyRef;
         typedef struct OneToManyMapper OneToManyMapper;
+        typedef struct NearestNeighborMapper NearestNeighborMapper;
 	typedef struct CoincidentMapper             CoincidentMapper;
 	typedef struct GaussCoincidentMapper        GaussCoincidentMapper;
 	typedef struct GaussMapper                  GaussMapper;



More information about the CIG-COMMITS mailing list