37 virtual bool straight()
const {
return false;};
60 return vtx0_*(1.0-x) + vtx1_*x; }
68 virtual std::ostream&
info(std::ostream&
os)
const;
126 virtual std::ostream&
info(std::ostream&
os)
const;
159 virtual std::ostream&
info(std::ostream&
os)
const;
162 std::unique_ptr<const MappingEdge2d> edgemap_;
167 inline const Real t_(
const Real t)
const {
168 return t0_*(1. - t) + t1_*t;
206 virtual std::ostream&
info(std::ostream&
os)
const;
241 virtual std::ostream&
info(std::ostream&
os)
const;
312 virtual std::ostream&
info(std::ostream&
os)
const;
319 Real angle0_, angle1_;
321 inline Real phi_(
const Real t)
const {
322 return angle0_ * (1.-t) + angle1_ * t;
358 virtual std::ostream&
info(std::ostream&
os)
const;
365 Real angle0_, angle1_;
399 virtual std::ostream&
info(std::ostream&
os)
const;
406 const Real s0_, deltas_;
446 inline const Real d()
const {
return d_; }
449 virtual std::ostream&
info(std::ostream&
os)
const;
452 std::unique_ptr<const MappingEdge2d> edgemap_;
496 virtual std::ostream&
info(std::ostream&
os)
const;
499 std::unique_ptr<MappingQuad2d> map_;
504 inline const Real2d lcoord_(
const Real t)
const {
505 return xi_ + xidiff_*t;
508 inline const Real2d lderiv_(
const Real t)
const {
598 virtual std::ostream&
info(std::ostream&
os)
const;
601 Real2d vtx0_, vtx1_, vtx2_;
642 return Real2d(map_, scx_ * x, scy_ * (x == 0 ? 0 : y/x));
645 virtual std::ostream&
info(std::ostream&
os)
const;
743 virtual std::ostream&
info(std::ostream&
os)
const;
780 Real2d v(map_, scx_ * x, scy_ * y);
781 return Real2d(v[0]*scaling_[0] + org_[0], v[1]*scaling_[1] + org_[0]);
790 virtual std::ostream&
info(std::ostream&
os)
const;
848 virtual bool straight()
const {
return true;};
850 virtual std::ostream&
info(std::ostream&
os)
const;
855 mutable Real len_[4];
922 virtual std::ostream&
info(std::ostream&
os)
const;
929 void testJacobian_()
const;
960 virtual std::ostream&
info(std::ostream&
os)
const;
963 std::unique_ptr<const MappingQuad2d> map_;
975 return x0_ +
Real2d(x * d_[0], y * d_[1]);
1002 virtual bool is_inregion(
const Real2d x)
const;
1003 virtual bool is_inpatch(
const Real2d x)
const;
1007 virtual std::ostream&
info(std::ostream&
os)
const;
1058 return Real3d(map_, scx_ * x, scy_ * y);
virtual MapReal2d jacobian(const Real x, const Real y) const
Returns the Jacobian in a 2D linear map.
BlendingQuad2d(const BlendingQuad2d &v)
Copy constructor.
virtual Real2d operator()(Real x, Real y) const
virtual MappingEdge2d * edge(const uint edge) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual MapReal2d hessian(uint i, const Real x, const Real y) const
virtual Real lineElement(const Real x, const uint edge) const
virtual BlendingQuad2d * clone() const
Returns a copy of the map.
BlendingQuad2d(const MappingEdge2d *edgemap0, const MappingEdge2d *edgemap1, const MappingEdge2d *edgemap2, const MappingEdge2d *edgemap3=0, const Real2d *vtx0=0, const Real2d *vtx1=0, const Real2d *vtx2=0, const Real2d *vtx3=0)
MappingEdge2d * part(const Real t0, const Real t1) const
virtual MappingEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
bool straight() const
returns true if the mapping is straight, i.e. the radius equals zero.
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Real curvature(const Real t, const uint n=0) const
virtual Real2d operator()(const Real t) const
CircleMappingEdge2d(const Real2d vtx0, const Real2d vtxm, const Real2d vtx1)
virtual CircleMappingEdge2d * clone() const
Virtual copy constructor.
CircleMappingEdge2d(const Real2d center, const Real r, const Real angle0, const Real angle1)
CircleMappingEdge2d(const Real r, const Real2d vtx0, const Real2d vtx1)
CircleMappingEdge2d(const CircleMappingEdge2d &edgemap)
Copy Constructor.
EllipseMappingEdge2d(const EllipseMappingEdge2d &edgemap)
Copy Constructor.
virtual Real2d operator()(const Real t) const
EllipseMappingEdge2d * part(const Real t0, const Real t1) const
virtual EllipseMappingEdge2d * clone() const
Virtual copy constructor.
EllipseMappingEdge2d(const Real2d center, const Real a, const Real b, const Real2d vtx0, const Real2d vtx1)
virtual EllipseMappingEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
InverseMappingEdge2d(const MappingEdge2d &edgemap)
PartMappingEdge2d * part(const Real t0, const Real t1) const
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
const MappingEdge2d * edgemap_
Original edge map.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual InverseMappingEdge2d * clone() const
Virtual copy constructor.
virtual MappingEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
virtual Real curvature(const Real t, uint n=0) const
virtual Real2d operator()(const Real t) const
InverseVertexQuadSector2d(const Real2d vtx0, const Real2d vtx1, const Real2d vtx2, const Real2d vtx3)
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
InverseVertexQuadSector2d(const Sequence< Real2d > x)
std::ostream & info(std::ostream &os) const
Returns information in an output stream.
std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Real operator()(const Real x) const
MapEdge1d * clone() const
Returns a copy of the map.
MapEdge1d(const Real vtx0, const Real vtx1)
Real jacobian(const Real) const
Returns the jacobian.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
MapQuad2d(const char *map, Real scX, Real scY, Real2d org=Real2d(0.0, 0.0), Real stretch=1.0)
virtual MapReal2d hessian(uint i, const Real x, const Real y) const
virtual MapQuad2d * clone() const
Returns a copy of the map.
virtual MapReal2d jacobian(const Real x, const Real y) const
Returns the Jacobian in a 2D linear map.
MapQuad2d(const MapQuad2d &map)
Copy constructor.
virtual Real2d operator()(Real x, Real y) const
virtual MapTriangle2d * clone() const
virtual MapReal2d jacobian(const Real x, const Real y) const
Returns the Jacobian in a 2D linear map.
Real2d operator()(const Real x, const Real y) const
MapTriangle2d(char *map, const Real scX, const Real scY)
MapTriangle2d(const MapTriangle2d &map)
Copy constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
MapTriangle3d(const char *map, Real scX, Real scY)
MapTriangle3d * clone() const
Returns a copy of the map.
Real3d operator()(Real x, Real y) const
MapTriangle3d(Real3d vtx0, Real3d vtx1, Real3d vtx2)
MapTriangle3d(const MapTriangle3d &map)
Copy constructor.
Real2d vtx_[2]
Coordinates of the vertices at either end of the edge.
MappingEdge2d(const Real2d vtx0, const Real2d vtx1)
virtual MappingEdge2d * part(const Real t0, const Real t1) const
virtual Real2d derivative(const Real t, const uint n=1) const =0
Returns the n-th derivative.
virtual Real2d normal(const Real t) const
Returns the right normal vector, length is that of the derivative.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual MappingEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
const Real2d & vtx(uint i) const
Spit out one vertex of the edge.
virtual Real2d operator()(const Real t) const =0
Real2d n0(const Real t) const
Returns the normalised right normal vector.
MappingEdge2d(const MappingEdge2d &edgemap)
Copy Constructor.
virtual MappingEdge2d * clone() const =0
Virtual copy constructor.
virtual Real curvature(const Real t, uint n=0) const
virtual Real curvature(const Real t, const uint n=0) const
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
virtual Real2d operator()(const Real t) const
const MappingEdge2d & map() const
Returns the edge to which this edge is parallel.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const Real d() const
Returns the distance.
MappingParallelEdge2d(const MappingEdge2d &edgemap, const Real d)
MappingParallelEdge2d * part(const Real t0, const Real t1) const
virtual MappingParallelEdge2d * clone() const
Virtual copy constructor.
MappingParallelEdge2d(const MappingParallelEdge2d &edgemap)
Copy Constructor.
virtual Real2d operator()(Real x, Real y) const =0
virtual Real lineElement(const Real x, const uint edge) const
virtual Real jacobianDeterminant(const Real x, const Real y) const
Returns determinant of the Jacobian.
virtual MapReal2d jacobianInverse(const Real x, const Real y) const
Returns the inverse of the Jacobian in a 2D linear map.
virtual MapReal2d inverseLaplace(const Real x, const Real y) const
virtual MapReal2d jacobian(const Real x, const Real y) const =0
Returns the Jacobian in a 2D linear map.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual MapReal2d hessian(uint i, const Real x, const Real y) const =0
virtual MappingQuad2d * part(const Real2d x0, const Real2d y0) const
virtual MappingEdge2d * edge(const uint edge) const
virtual MappingQuad2d * clone() const =0
Returns a copy of the map.
MappingQuadEdge2d(const MappingQuad2d &map, const Real2d xi0, const Real2d xi1)
MappingQuadEdge2d(const MappingQuad2d &map, const uint edge)
virtual MappingQuadEdge2d * clone() const
Virtual copy constructor.
MappingQuadEdge2d(const MappingQuadEdge2d &edgemap)
Copy Constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual MappingQuadEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
virtual Real2d operator()(const Real t) const
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
MappingStraightEdge2d(const Real2d vtx0, const Real2d vtx1)
MappingStraightEdge2d(const MappingStraightEdge2d &edgemap)
Copy Constructor.
virtual MappingStraightEdge2d * clone() const
Virtual copy constructor.
virtual Real curvature(const Real t, uint n=0) const
virtual Real2d operator()(const Real t) const
virtual MappingStraightEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
MappingStraightEdge2d * part(const Real t0, const Real t1) const
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
Real2d delta_
Vector from first to second vertex.
virtual MapReal2d jacobian(const Real x, const Real y) const =0
Returns the Jacobian in a 2D linear map.
virtual MappingTriangle2d * clone() const =0
virtual Real jacobianDeterminant(const Real x, const Real y) const
Returns determinant of the Jacobian.
virtual MapReal2d jacobianInverse(const Real x, const Real y) const
Returns the inverse of the Jacobian in a 2D linear map.
virtual Real2d operator()(const Real x, const Real y) const =0
ParabelMappingEdge2d(const ParabelMappingEdge2d &edgemap)
Copy Constructor.
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
ParabelMappingEdge2d(const Real2d vtx0, const Real2d vtx1, const Real2d cusp, const Real2d ap)
ParabelMappingEdge2d * part(const Real t0, const Real t1) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Real2d operator()(const Real t) const
virtual ParabelMappingEdge2d * clone() const
Virtual copy constructor.
virtual PartMappingEdge2d * inverse() const
Returns the mapping of the edge in inverse direction.
virtual Real2d derivative(const Real t, const uint n=1) const
Returns the n-th derivative.
PartMappingEdge2d(const PartMappingEdge2d &edgemap)
Copy Constructor.
virtual PartMappingEdge2d * clone() const
Virtual copy constructor.
virtual Real2d operator()(const Real t) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
PartMappingEdge2d(const MappingEdge2d &edgemap, const Real t0, const Real t1)
virtual PartMappingQuad2d * clone() const
Virtual copy constructor.
virtual MapReal2d jacobian(const Real x, const Real y) const
Returns the Jacobian in a 2D linear map.
virtual MapReal2d hessian(uint i, const Real x, const Real y) const
virtual Real2d operator()(Real x, Real y) const
virtual MappingEdge2d * edge(const uint edge) const
PartMappingQuad2d(const PartMappingQuad2d &map)
Copy Constructor.
PartMappingQuad2d(const MappingQuad2d &map, const Real2d xi0, const Real2d xi1)
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
void lincomb(const Point< F, dim > &a, const Point< F, dim > &b, const F ca=1.0, const F cb=1.0)
Assign the vector the linear combination of a and b.
virtual VertexQuad2d * clone() const
Returns a copy of the map.
VertexQuad2d(const VertexQuad2d &v)
Copy constructor.
virtual Real2d operator()(Real x, Real y) const
virtual VertexQuad2d * part(const Real2d x0, const Real2d y0) const
VertexQuad2d(Real2d vtx0, Real2d vtx1, Real2d vtx2, Real2d vtx3)
virtual Real lineElement(const Real x, const uint edge) const
virtual MappingStraightEdge2d * edge(const uint edge) const
virtual MapReal2d jacobian(const Real x, const Real y) const
virtual MapReal2d hessian(uint i, const Real x, const Real y) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
VertexTriangle2d(const VertexTriangle2d &map)
Copy constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
VertexTriangle2d(Real2d vtx0, Real2d vtx1, Real2d vtx2)
virtual bool straight() const
Real2d operator()(const Real x, const Real y) const
virtual VertexTriangle2d * clone() const
virtual MapReal2d jacobian(const Real x, const Real y) const
Returns the Jacobian in a 2D linear map.
#define conceptsAssert(cond, exc)
std::string typeOf(const T &t)
Set< F > makeSet(uint n, const F &first,...)
unsigned char uchar
Abbreviation for unsigned char.