libMesh::MeshfreeInterpolation Class Reference

#include <meshfree_interpolation.h>

Inheritance diagram for libMesh::MeshfreeInterpolation:

List of all members.

Public Types

enum  ParallelizationStrategy { SYNC_SOURCES = 0, INVALID_STRATEGY }

Public Member Functions

 MeshfreeInterpolation ()
void print_info (std::ostream &os=libMesh::out) const
virtual void clear ()
unsigned int n_field_variables () const
void set_field_variables (const std::vector< std::string > &names)
const std::vector< std::string > & field_variables () const
std::vector< Point > & get_source_points ()
std::vector< Number > & get_source_vals ()
virtual void add_field_data (const std::vector< std::string > &field_names, const std::vector< Point > &pts, const std::vector< Number > &vals)
virtual void prepare_for_use ()
virtual void interpolate_field_data (const std::vector< std::string > &field_names, const std::vector< Point > &tgt_pts, std::vector< Number > &tgt_vals) const =0

Protected Member Functions

virtual void gather_remote_data ()

Protected Attributes

ParallelizationStrategy _parallelization_strategy
std::vector< std::string > _names
std::vector< Point_src_pts
std::vector< Number_src_vals

Friends

std::ostream & operator<< (std::ostream &os, const MeshfreeInterpolation &mfi)

Detailed Description

Base class to support various mesh-free interpolation methods. Such methods can be useful for example to pass data between two different domains which share a physical boundary, where that boundary may be discretized differently in each domain. This is the case for conjugate heat transfer applications where the common interface has overlapping but distinct boundary discretizations.

Definition at line 50 of file meshfree_interpolation.h.


Member Enumeration Documentation

"ParallelizationStrategy" to employ.

SYNC_SOURCES assumes that the data added on each processor are independent and relatively small. Calling the prepare_for_use() method with this ParallelizationStrategy will copy remote data from other processors, so all interpolation can be performed locally.

Other ParallelizationStrategy techniques will be implemented as needed.

Enumerator:
SYNC_SOURCES 
INVALID_STRATEGY 

Definition at line 66 of file meshfree_interpolation.h.

00066                                { SYNC_SOURCES     = 0,
00067                                  INVALID_STRATEGY}; 


Constructor & Destructor Documentation

libMesh::MeshfreeInterpolation::MeshfreeInterpolation (  )  [inline]

Constructor.

Definition at line 71 of file meshfree_interpolation.h.

00071                            :
00072     _parallelization_strategy (SYNC_SOURCES)
00073   {}


Member Function Documentation

virtual void libMesh::MeshfreeInterpolation::add_field_data ( const std::vector< std::string > &  field_names,
const std::vector< Point > &  pts,
const std::vector< Number > &  vals 
) [virtual]

Sets source data at specified points.

virtual void libMesh::MeshfreeInterpolation::clear (  )  [virtual]

Clears all internal data structures and restores to a pristine state.

Reimplemented in libMesh::InverseDistanceInterpolation< KDDim >.

const std::vector<std::string>& libMesh::MeshfreeInterpolation::field_variables (  )  const [inline]
Returns:
the field variables as a read-only reference.

Definition at line 109 of file meshfree_interpolation.h.

References _names.

00110   { return _names; }

virtual void libMesh::MeshfreeInterpolation::gather_remote_data (  )  [protected, virtual]

Gathers source points and values that have been added on other processors. Note the user is responsible for adding points only once per processor if this method is called. No attempt is made to identify duplicate points.

This method is virtual so that it can be overwritten or extended as required in derived classes.

std::vector<Point>& libMesh::MeshfreeInterpolation::get_source_points (  )  [inline]
Returns:
a writeable reference to the point list.

Definition at line 115 of file meshfree_interpolation.h.

References _src_pts.

00116   { return _src_pts; }

std::vector<Number>& libMesh::MeshfreeInterpolation::get_source_vals (  )  [inline]
Returns:
a writeable reference to the point list.

Definition at line 121 of file meshfree_interpolation.h.

References _src_vals.

00122   { return _src_vals; }

virtual void libMesh::MeshfreeInterpolation::interpolate_field_data ( const std::vector< std::string > &  field_names,
const std::vector< Point > &  tgt_pts,
std::vector< Number > &  tgt_vals 
) const [pure virtual]

Interpolate source data at target points. Pure virtual, must be overriden in derived classes.

Implemented in libMesh::InverseDistanceInterpolation< KDDim >.

unsigned int libMesh::MeshfreeInterpolation::n_field_variables (  )  const [inline]

The number of field variables.

Definition at line 96 of file meshfree_interpolation.h.

References _names.

00097   { return libmesh_cast_int<unsigned int>(_names.size()); }

virtual void libMesh::MeshfreeInterpolation::prepare_for_use (  )  [virtual]

Prepares data structures for use.

This method is virtual so that it can be overwritten or extended as required in derived classes.

void libMesh::MeshfreeInterpolation::print_info ( std::ostream &  os = libMesh::out  )  const

Prints information about this object, by default to libMesh::out.

void libMesh::MeshfreeInterpolation::set_field_variables ( const std::vector< std::string > &  names  )  [inline]

Defines the field variable(s) we are responsible for, and importantly their assumed ordering.

Definition at line 103 of file meshfree_interpolation.h.

References _names.

00104   { _names = names; }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const MeshfreeInterpolation mfi 
) [friend]

Same as above, but allows you to also use stream syntax.


Member Data Documentation

std::vector<std::string> libMesh::MeshfreeInterpolation::_names [protected]

Definition at line 161 of file meshfree_interpolation.h.

Referenced by get_source_points().

Definition at line 162 of file meshfree_interpolation.h.

Referenced by get_source_vals().


The documentation for this class was generated from the following file:

Site Created By: libMesh Developers
Last modified: February 05 2013 19:55:30 UTC

Hosted By:
SourceForge.net Logo