A virtual class to serve as base class for different types of interface segmentsconstruct a single interface. More...
#include <mrtr_segment.H>

Public Types | |
| enum | SegmentType { seg_none, seg_Linear1D, seg_BiLinearQuad, seg_BiLinearTri } |
| Type of segment. More... | |
Public Member Functions | |
| 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. | |
| virtual MOERTEL::Segment * | Clone ()=0 |
| Deep copy the derived class and return pointer to it. | |
| virtual int * | Pack (int *size)=0 |
| Pack some data from this class to an int vector of length size so it can be communicated using MPI. | |
| virtual bool | UnPack (int *pack)=0 |
| Unpack some data an int vector and store data in this class. | |
| virtual double * | BuildNormal (double *xi)=0 |
| Build an outward normal at segment coordinates xi. | |
| virtual double | Area ()=0 |
| Compute and return the area of this Segment. | |
| virtual double | Metric (double *xi, double g[], double G[][3])=0 |
| Build the basis vectors and metric tensor at a given local coord in this segment. | |
| virtual bool | LocalCoordinatesOfNode (int lid, double *xi)=0 |
| Get local coords of a node attached to this segment with local node Id lid. | |
Protected Attributes | |
| int | Id_ |
| int | outputlevel_ |
| SegmentType | stype_ |
| std::vector< int > | nodeId_ |
| std::vector< MOERTEL::Node * > | nodeptr_ |
|
std::map< int, Teuchos::RCP < MOERTEL::Function > > | functions_ |
A virtual class to serve as base class for different types of interface segmentsconstruct a single interface.
A virtual class as a basis for different types of interface segments
This class serves as a (not pure) virtual base class to several types of interface segments.
The MOERTEL::Segment class supports the ostream& operator <<
Type of segment.
| seg_none | : default value |
| seg_Linear1D | : linear 1D segment with 2 nodes |
| seg_BiLinearQuad | : linear 2D triangle with 3 nodes |
| seg_BiLinearTri | : linear 2D quadrilateral with 4 nodes |
| MOERTEL::Segment::Segment | ( | int | id, |
| int | nnode, | ||
| int * | nodeId, | ||
| int | outlevel | ||
| ) |
Standard Constructor.
| 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 |
| outlevel | : Level of output to stdout to be generated by this class (0-10) |
| MOERTEL::Segment::Segment | ( | int | outlevel | ) |
| MOERTEL::Segment::Segment | ( | MOERTEL::Segment & | old | ) |
| double * MOERTEL::Segment::BuildNormalAtNode | ( | int | nid | ) |
Build normal at a node adjacent to this Segment.
| nid | : global unique node id |
| bool MOERTEL::Segment::EvaluateFunction | ( | int | id, |
| const double * | xi, | ||
| double * | val, | ||
| int | valdim, | ||
| double * | deriv | ||
| ) |
Evaluate a function with a certain id.
Will evaluate the function with Id id at a given local coordinate
| id | (in): unique function id |
| xi | (in): Segment local coordinates where to evaluate the function |
| val | (out): Vector holding function values at xi on output. If NULL on input, function will not evaluate values. |
| valdim | (in): length of val |
| deriv | (out): Vector holding function derivatives at xi on output, should be of length 2*valdim in most cases. If NULL on input, function will not evaluate derivatives. |
References MOERTEL::ReportError().
Referenced by MOERTEL::Integrator::Integrate(), and MOERTEL::Integrator::Integrate_2D_Mmod().
| MOERTEL::Function::FunctionType MOERTEL::Segment::FunctionType | ( | int | id | ) |
Return FunctionType of a function with the Id id.
| id | : function id to lookup the type for |
| bool MOERTEL::Segment::SetFunction | ( | int | id, |
| MOERTEL::Function * | func | ||
| ) |
1.8.5