Moertel  Development
 All Classes Namespaces Files Functions Enumerations Friends Pages
Protected Member Functions | Protected Attributes | List of all members
MOERTEL::ProjectedNode Class Reference

A class to handle the projection of a node onto some segment More...

#include <mrtr_pnode.H>

Inheritance diagram for MOERTEL::ProjectedNode:
Inheritance graph
[legend]
Collaboration diagram for MOERTEL::ProjectedNode:
Collaboration graph
[legend]

Public Member Functions

 ProjectedNode (const MOERTEL::Node &basenode, const double *xi, MOERTEL::Segment *pseg)
 Constructor. More...
 
 ProjectedNode (const MOERTEL::Node &basenode, const double *xi, MOERTEL::Segment *pseg, int orthseg)
 Constructor (case of orthogonal projection only) More...
 
 ProjectedNode (MOERTEL::ProjectedNode &old)
 Copy-Constructor.
 
virtual ~ProjectedNode ()
 Destructor.
 
bool Print () const
 Print this ProjectedNode and its Node.
 
double * Xi ()
 Return view of the local coordinates of the projection in the segment.
 
MOERTEL::SegmentSegment ()
 Return pointer to segment this projection is in.
 
int OrthoSegment ()
 Return id of segment this projection is orthogonal to (might be different from Segment() )
 
- Public Member Functions inherited from MOERTEL::Node
 Node (int Id, const double *x, int ndof, const int *dof, bool isonboundary, int out)
 Constructor. More...
 
 Node (int out)
 Constructor. More...
 
 Node (const MOERTEL::Node &old)
 Copy-Constructor. More...
 
virtual ~Node ()
 Destructor.
 
int OutLevel ()
 Return the level of output written to stdout ( 0 - 10 )
 
int Id () const
 Return unique and positive id of this node.
 
bool Print () const
 Print this node to stdout.
 
void Reset ()
 Reset the internal state of this node and clear integrated values. More...
 
const double * XCoords () const
 Returns the view (a vector of length 3) to the current coordinates of this node.
 
bool SetX (double *x)
 Update the coordinates of this Node. More...
 
const double * Normal () const
 Return pointer to vector of length 3 of normal of this node.
 
bool SetN (double *n)
 Store a normal in this node. More...
 
int Ndof () const
 Return the number of degrees of freedom on this node.
 
int Nlmdof () const
 Return the number of Lagrange mutlipliers on this node. More...
 
const int * Dof () const
 Return view of degrees of freedom on this node. More...
 
const int * LMDof () const
 Return view of the Lagrange multipliers on this node. More...
 
int Nseg () const
 Return the number of segments adjacent to this node. More...
 
int * SegmentIds ()
 Returns a view to the vector of segment ids of segments adjacent to this node. More...
 
MOERTEL::Segment ** Segments ()
 Returns a view to the vector of pointers to segments adjacent to this node. More...
 
bool AddSegment (int sid)
 Adds a segment id to the list of segments adjacent to this node. More...
 
double * Pack (int *size)
 Packs most information stored in this node to a double vector for communication with MPI. More...
 
bool UnPack (double *pack)
 Unpacks information stored in a double vector to an instance of Node. More...
 
bool BuildAveragedNormal ()
 Build averaged normal from adjacent segments at this node.
 
bool GetPtrstoSegments (MOERTEL::Interface &interface)
 Construct vector of pointers to segments from adjacent segments id list.
 
bool SetProjectedNode (MOERTEL::ProjectedNode *pnode)
 Store a pointer to a projected node. More...
 
Teuchos::RCP
< MOERTEL::ProjectedNode > * 
GetProjectedNode (int &length)
 Returns a view of all projected nodes this node owns. More...
 
Teuchos::RCP
< MOERTEL::ProjectedNode
GetProjectedNode ()
 Returns a view of the projection of this node. More...
 
bool SetLagrangeMultiplierId (int LMId)
 Add a Lagrange multiplier id to this node's list.
 
void AddDValue (double val, int col)
 Add a value to the 'D' map of this node. More...
 
void AddMValue (double val, int col)
 Add a value to the 'M' map of this node. More...
 
void AddMmodValue (int row, double val, int col)
 Add a value to the 'M' map of this node. More...
 
Teuchos::RCP< std::map< int,
double > > 
GetD ()
 Get view of the 'D' map of this node.
 
Teuchos::RCP< std::map< int,
double > > 
GetM ()
 Get view of the 'M' map of this node.
 
Teuchos::RCP< std::vector
< std::map< int, double > > > 
GetMmod ()
 Get view of the 'Mmod' map of this node.
 
void SetCorner ()
 Set the flag indicating that node is corner node of 1D interface.
 
bool IsCorner () const
 Query the flag indicating that node is corner node of 1D interface.
 
bool IsOnBoundary () const
 Query the flag indicating that node is on the boundary of 2D interface.
 
int NSupportSet () const
 Get number of nodes that support this boundary node. More...
 
void AddSupportedByNode (MOERTEL::Node *suppnode)
 Add an internal node to the map of nodes supporting this node. More...
 
std::map< int, MOERTEL::Node * > & GetSupportedByNode ()
 Get the map of nodes supporting this node. More...
 
double Gap ()
 Return distance between projection and source node. More...
 
void SetGap (double gap)
 Sets the distance between projection and source node. More...
 

Protected Member Functions

ProjectedNode operator= (const ProjectedNode &old)
 
- Protected Member Functions inherited from MOERTEL::Node
Node operator= (const Node &old)
 

Protected Attributes

double xi_ [2]
 
MOERTEL::Segmentpseg_
 
int orthseg_
 
- Protected Attributes inherited from MOERTEL::Node
int Id_
 
double x_ [3]
 
double n_ [3]
 
int outputlevel_
 
bool iscorner_
 
bool isonboundary_
 
std::map< int, MOERTEL::Node * > supportedby_
 
std::vector< int > dof_
 
std::vector< int > LMdof_
 
std::vector< int > seg_
 
std::vector< MOERTEL::Segment * > segptr_
 
Teuchos::RCP< std::map< int,
double > > 
Drow_
 
Teuchos::RCP< std::map< int,
double > > 
Mrow_
 
Teuchos::RCP< std::vector
< std::map< int, double > > > 
Mmodrow_
 
std::vector< Teuchos::RCP
< MOERTEL::ProjectedNode > > 
pnode_
 
double gap_
 

Detailed Description

A class to handle the projection of a node onto some segment

The MOERTEL::ProjectedNode class supports the ostream& operator <<

Author
Glen Hansen (gahan.nosp@m.se@s.nosp@m.andia.nosp@m..gov)

Constructor & Destructor Documentation

MOERTEL::ProjectedNode::ProjectedNode ( const MOERTEL::Node basenode,
const double *  xi,
MOERTEL::Segment pseg 
)
explicit

Constructor.

Constructs an instance of this class.
Note that this is not a collective call as nodes shall only have one owning process.

Parameters
basenode: the node this class is the projection of
xi: local coordinates of the projection in the segment its projected onto
pseg: Segment this projection is located in
MOERTEL::ProjectedNode::ProjectedNode ( const MOERTEL::Node basenode,
const double *  xi,
MOERTEL::Segment pseg,
int  orthseg 
)
explicit

Constructor (case of orthogonal projection only)

Constructs an instance of this class.
Note that this is not a collective call as nodes shall only have one owning process.

Parameters
basenode: the node this class is the projection of
xi: local coordinates of the projection in the segment its projected onto
pseg: Segment this projection is located in
orthseg: id of segment this projection is orthogonal to which might be different from pseg

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