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

A class to define a 3-noded triangle 2D Segment. More...

#include <mrtr_segment_bilineartri.H>

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

Public Member Functions

 Segment_BiLinearTri (int id, int nnode, int *nodeId, int out)
 Standard Constructor. More...
 
 Segment_BiLinearTri (int id, const std::vector< int > &, int out)
 
 Segment_BiLinearTri (int out)
 Empty Constructor. More...
 
 Segment_BiLinearTri (MOERTEL::Segment_BiLinearTri &old)
 Copy Constructor. More...
 
virtual ~Segment_BiLinearTri ()
 Destructor.
 
MOERTEL::SegmentClone ()
 Deep copy this instance of Segment_BiLinearTri and return pointer to the copy.
 
int * Pack (int *size)
 Pack some data from this class to an int vector of length size so it can be communicated using MPI.
 
bool UnPack (int *pack)
 Unpack some data an int vector and store data in this class.
 
double * BuildNormal (double *xi)
 Build an outward normal at segment coordinates xi.
 
double Area ()
 Compute and return the area of this Segment_BiLinearTri.
 
double Metric (double *xi, double g[], double G[][3])
 not implemented
 
bool LocalCoordinatesOfNode (int lid, double *xi)
 Get local coords of a node attached to this segment with local node Id lid.
 
- Public Member Functions inherited from MOERTEL::Segment
 Segment (int id, int nnode, int *nodeId, int outlevel)
 Standard Constructor. More...
 
 Segment (int id, const std::vector< int > &nodeId, int outlevel)
 
 Segment (int outlevel)
 Empty Constructor. More...
 
 Segment (MOERTEL::Segment &old)
 Copy Constructor. More...
 
virtual ~Segment ()
 Destructor.
 
int OutLevel ()
 Return level of output to be generated by this class (0-10)
 
int Id () const
 Return unique id of this Segment.
 
int Nnode () const
 Return number of nodes attached to this Segment.
 
MOERTEL::Segment::SegmentType Type () const
 Return type of Segment.
 
const int * NodeIds () const
 Return view of node ids of nodes attached to this Segment.
 
MOERTEL::Node ** Nodes ()
 Return pointer to vector of length Nnode() of pointers to Nodes attached to this Segment.
 
int Nfunctions ()
 Return number of functions defined on this Segment.
 
MOERTEL::Function::FunctionType FunctionType (int id)
 Return FunctionType of a function with the Id id. More...
 
bool SetFunction (int id, MOERTEL::Function *func)
 Attach a function to this Segment. More...
 
bool EvaluateFunction (int id, const double *xi, double *val, int valdim, double *deriv)
 Evaluate a function with a certain id. More...
 
double * BuildNormalAtNode (int nid)
 Build normal at a node adjacent to this Segment. More...
 
bool GetPtrstoNodes (MOERTEL::Interface &interface)
 Get pointers to Nodes attached to this Segment from the Interface this Segment resides on.
 
bool GetPtrstoNodes (std::vector< MOERTEL::Node * > &nodes)
 Get pointers to Nodes attached to this Segment from a vector of Node pointers.
 
virtual bool Print () const
 Print this Segment.
 
int GetLocalNodeId (int nid)
 Get segment-local node id from global node id nid.
 

Protected Member Functions

Segment_BiLinearTri operator= (const Segment &old)
 

Additional Inherited Members

- Public Types inherited from MOERTEL::Segment
enum  SegmentType { seg_none, seg_Linear1D, seg_BiLinearQuad, seg_BiLinearTri }
 Type of segment. More...
 
- Protected Attributes inherited from MOERTEL::Segment
int Id_
 
int outputlevel_
 
SegmentType stype_
 
std::vector< int > nodeId_
 
std::vector< MOERTEL::Node * > nodeptr_
 
std::map< int, Teuchos::RCP
< MOERTEL::Function > > 
functions_
 

Detailed Description

A class to define a 3-noded triangle 2D Segment.

A class to define a 3-noded triangle 2D Segment

Date
Last update do Doxygen: 20-March-06

This class defines a 3-noded linear 2D triangle interface surface segment.

Important:
Upon construction, the user must assure that the nodes attached to this segment are given in counter-clockwise order such that the outward normal to the domain points out from the screen:

                   Node 2
                     o
                   / |
                  /  |
                 /   |
                /    |                <-------| 
               /     |         domain surface | 
              /      |                   ------  
             /       |
            /        |
           /         |
          o----------o
        Node 0     Node 1

The reason for this is that the outward normal to the interface is implicitly defined by the orientation of the segments. There is no way for the MOERTEL package to check the orientation of the segments as they are passed in by the user and most obscure results will be produced when the orientation is uncorrect!

The MOERTEL::Segment_BiLinearTri class supports the std::ostream& operator <<

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

Constructor & Destructor Documentation

MOERTEL::Segment_BiLinearTri::Segment_BiLinearTri ( int  id,
int  nnode,
int *  nodeId,
int  out 
)
explicit

Standard Constructor.

Parameters
Id: A unique positive Segment id. Does not need to be continous among segments
nnode: Number of nodes this segment is attached to
nodeId: Pointer to vector length nnode holding unique positive node ids of nodes this segment is attached to in counterclock-wise orientation looking at the interface such that the outward normal to the domain points out from the screen
outlevel: Level of output to stdout to be generated by this class (0-10)
MOERTEL::Segment_BiLinearTri::Segment_BiLinearTri ( int  out)
explicit

Empty Constructor.

To be used for communicating Segment_BiLinearTri classes among processes together with Pack and UnPack

MOERTEL::Segment_BiLinearTri::Segment_BiLinearTri ( MOERTEL::Segment_BiLinearTri old)

Copy Constructor.

Makes a deep copy of a Segment_BiLinearTri


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