#include <mrtr_projector.H>
Public Member Functions  
Constructors and destructors  
Projector (bool twoD, int outlevel)  
Constructor.  
virtual  ~Projector () 
Destructor.  
Public members  
int  OutLevel () 
Return the level of output written to stdout ( 0  10 ).  
bool  IsTwoDimensional () 
Return whether this instance was constructed for 2D or 3D projections.  
2D and 3D projection methods  
bool  ProjectNodetoSegment_NodalNormal (const MOERTEL::Node &node, MOERTEL::Segment &seg, double xi[]) 
Project a Node onto a Segment along the Node 's normal.  
bool  ProjectNodetoSegment_SegmentNormal (const MOERTEL::Node &node, MOERTEL::Segment &seg, double xi[]) 
Project a Node onto a Segment along the interpolated outward normal field of the Segment.  
Additional 2D projection methods  
bool  ProjectNodetoSegment_SegmentOrthogonal (const MOERTEL::Node &node, MOERTEL::Segment &seg, double xi[]) 
Project a Node onto a Segment orthogonal to the Segment (2D problems only).  
bool  ProjectNodetoSegment_Orthogonal_to_Slave (const MOERTEL::Node &snode, MOERTEL::Segment &seg, double xi[], MOERTEL::Segment &sseg) 
Project a Node onto a Segment orthogonal another Segment (2D problems only). 
This class performs all neccessary projections of nodes onto opposing segment surfaces in 2D and 3D applying 2 different kinds of projection techniques.
In 2D problems, the user has a choice of projecting nodes onto opposing segment surfaces either orthogonal to that segment surface or along a previously constructed C0continous normal field of the slave side.
In both cases finding the projection of a Node on a Segment in terms of the segment's local coordinates of the projection point is a nonlinear operation. A local Newton iteration is involved and a dense solve of a 2x2 system is neccessary within the Newton iteration.
When projecting along the C0continous normal field, the field of normals is defined over the slave side discretization and is an interpolation of (weighted averaged) nodal normals of the slave side. Projections in both directions are performed along that same normal field making it neccessary to have different methods for projecting slave to mortar and vice versa.
In 3D projection is always performed along a previously constructed outward field of nodal normals. The projection of a point in 3D along a field onto a 2D surface is always a nonlinear iteration and a Newton method is applied here involving a dense 3x3 solve in each Newton step.
These projections make up for a pretty good share of the overall computational cost of the mortar method though convergence in the Newton iterations is usually excellent.

Constructor.
Constructs an instance of this class.


Project a Node onto a Segment along the Node 's normal. Used to project a Node from the slave side onto a Segment on the mortar side This method will compute the coordinates of a projection of a Node in the local coordinate system of a Segment. The projection point will not neccesarily fall inside the Segment. However, if the projection point is far outside the segment's boundaries, problems with the internal nonlinear iteration might occur and a warning is issued when convergence can not be achieved in a limited number of iterations.


Project a Node onto a Segment orthogonal another Segment (2D problems only). Used to project a Node from the slave side onto a Segment on the mortar side orthogonal to some slave Segment This method will compute the coordinates of a projection of a Node in the local coordinate system of a Segment. The projection point will not neccesarily fall inside the Segment. However, if the projection point is far outside the segment's boundaries, problems with the internal nonlinear iteration might occur and a warning is issued when convergence can not be achieved in a limited number of iterations.


Project a Node onto a Segment along the interpolated outward normal field of the Segment. Used to project a Node from the mortar side onto a Segment on the slave side This method will compute the coordinates of a projection of a Node in the local coordinate system of a Segment. The projection point will not neccesarily fall inside the Segment. However, if the projection point is far outside the segment's boundaries, problems with the internal nonlinear iteration might occur and a warning is issued when convergence can not be achieved in a limited number of iterations.


Project a Node onto a Segment orthogonal to the Segment (2D problems only). Used to project a Node from the mortar side onto a Segment on the slave side This method will compute the coordinates of a projection of a Node in the local coordinate system of a Segment. The projection point will not neccesarily fall inside the Segment. However, if the projection point is far outside the segment's boundaries, problems with the internal nonlinear iteration might occur and a warning is issued when convergence can not be achieved in a limited number of iterations.
