[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