libMesh
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
libMesh::Point Class Reference

A Point defines a location in LIBMESH_DIM dimensional Real space. More...

#include <point.h>

Inheritance diagram for libMesh::Point:
[legend]

Public Types

typedef Real value_type
 Helper typedef for C++98 generic programming. More...
 
typedef unsigned int index_type
 Helper typedef for generic index programming. More...
 

Public Member Functions

 Point (const Real x=0., const Real y=0., const Real z=0.)
 Constructor. More...
 
 Point (const Point &p)
 Copy-constructor. More...
 
 Point (const TypeVector< Real > &p)
 Copy-constructor. More...
 
 ~Point ()
 Empty. More...
 
void assign (const TypeVector< T2 > &)
 Assign to this vector without creating a temporary. More...
 
const Realoperator() (const unsigned int i) const
 
Realoperator() (const unsigned int i)
 
const Realslice (const unsigned int i) const
 
Realslice (const unsigned int i)
 
TypeVector< typename CompareTypes< Real, T2 >::supertype > operator+ (const TypeVector< T2 > &) const
 Add two vectors. More...
 
const TypeVector< Real > & operator+= (const TypeVector< T2 > &)
 Add to this vector. More...
 
void add (const TypeVector< T2 > &)
 Add to this vector without creating a temporary. More...
 
void add_scaled (const TypeVector< T2 > &, const Real &)
 Add a scaled value to this vector without creating a temporary. More...
 
TypeVector< typename CompareTypes< Real, T2 >::supertype > operator- (const TypeVector< T2 > &) const
 Subtract from this vector. More...
 
TypeVector< Realoperator- () const
 
const TypeVector< Real > & operator-= (const TypeVector< T2 > &)
 Subtract from this vector. More...
 
void subtract (const TypeVector< T2 > &)
 Subtract from this vector without creating a temporary. More...
 
void subtract_scaled (const TypeVector< T2 > &, const Real &)
 Subtract a scaled value from this vector without creating a temporary. More...
 
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< Real, Scalar >::supertype > >::type operator* (const Scalar &) const
 Multiply this vector by a scalar value. More...
 
CompareTypes< Real, T2 >::supertype operator* (const TypeVector< T2 > &) const
 
const TypeVector< Real > & operator*= (const Real &)
 Multiply this vector by a scalar value. More...
 
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< Real, Scalar >::supertype > >::type operator/ (const Scalar &) const
 Divide each entry of this vector by scalar value. More...
 
const TypeVector< Real > & operator/= (const Real &)
 Divide each entry of this vector by scalar value. More...
 
CompareTypes< Real, T2 >::supertype contract (const TypeVector< T2 > &) const
 
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross (const TypeVector< T2 > &v) const
 
TypeVector< Realunit () const
 
auto size () const -> decltype(std::norm(Real()))
 
auto norm () const -> decltype(std::norm(Real()))
 
auto size_sq () const -> decltype(std::norm(Real()))
 
auto norm_sq () const -> decltype(std::norm(Real()))
 
void zero ()
 Set all entries of the vector to 0. More...
 
bool relative_fuzzy_equals (const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
 
bool absolute_fuzzy_equals (const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
 
bool operator== (const TypeVector< Real > &rhs) const
 
bool operator!= (const TypeVector< Real > &rhs) const
 
bool operator< (const TypeVector< Real > &rhs) const
 
bool operator<= (const TypeVector< Real > &rhs) const
 
bool operator> (const TypeVector< Real > &rhs) const
 
bool operator>= (const TypeVector< Real > &rhs) const
 
void print (std::ostream &os=libMesh::out) const
 Formatted print, by default to libMesh::out. More...
 
void write_unformatted (std::ostream &out, const bool newline=true) const
 Unformatted print to the stream out. More...
 

Protected Attributes

Real _coords [LIBMESH_DIM]
 The coordinates of the TypeVector. More...
 

Friends

class Node
 Make the derived class a friend. More...
 

Detailed Description

A Point defines a location in LIBMESH_DIM dimensional Real space.

Points are always real-valued, even if the library is configured with –enable-complex.

Author
Benjamin S. Kirk
Date
2003 A geometric point in (x,y,z) space.

Definition at line 38 of file point.h.

Member Typedef Documentation

◆ index_type

typedef unsigned int libMesh::TypeVector< Real >::index_type
inherited

Helper typedef for generic index programming.

Definition at line 141 of file type_vector.h.

◆ value_type

typedef Real libMesh::TypeVector< Real >::value_type
inherited

Helper typedef for C++98 generic programming.

Definition at line 136 of file type_vector.h.

Constructor & Destructor Documentation

◆ Point() [1/3]

libMesh::Point::Point ( const Real  x = 0.,
const Real  y = 0.,
const Real  z = 0. 
)

Constructor.

By default sets all entries to 0. Gives the point 0 in LIBMESH_DIM dimensions.

Definition at line 46 of file point.h.

48  :
49  TypeVector<Real> (x,y,z)
50  {}

◆ Point() [2/3]

libMesh::Point::Point ( const Point p)

Copy-constructor.

Definition at line 55 of file point.h.

55  :
56  TypeVector<Real> (p)
57  {}

◆ Point() [3/3]

libMesh::Point::Point ( const TypeVector< Real > &  p)

Copy-constructor.

Definition at line 62 of file point.h.

62  :
63  TypeVector<Real> (p)
64  {}

◆ ~Point()

libMesh::Point::~Point ( )

Empty.

Definition at line 69 of file point.h.

69 {}

Member Function Documentation

◆ absolute_fuzzy_equals()

bool libMesh::TypeVector< Real >::absolute_fuzzy_equals ( const TypeVector< Real > &  rhs,
Real  tol = TOLERANCE 
) const
inherited
Returns
true if two vectors are equal to within an absolute tolerance of tol.

Definition at line 996 of file type_vector.h.

References std::abs().

997 {
998 #if LIBMESH_DIM == 1
999  return (std::abs(_coords[0] - rhs._coords[0])
1000  <= tol);
1001 #endif
1002 
1003 #if LIBMESH_DIM == 2
1004  return (std::abs(_coords[0] - rhs._coords[0]) +
1005  std::abs(_coords[1] - rhs._coords[1])
1006  <= tol);
1007 #endif
1008 
1009 #if LIBMESH_DIM == 3
1010  return (std::abs(_coords[0] - rhs._coords[0]) +
1011  std::abs(_coords[1] - rhs._coords[1]) +
1012  std::abs(_coords[2] - rhs._coords[2])
1013  <= tol);
1014 #endif
1015 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440
double abs(double a)

◆ add()

void libMesh::TypeVector< Real >::add ( const TypeVector< T2 > &  p)
inherited

Add to this vector without creating a temporary.

Definition at line 634 of file type_vector.h.

635 {
636 #if LIBMESH_DIM == 1
637  _coords[0] += p._coords[0];
638 #endif
639 
640 #if LIBMESH_DIM == 2
641  _coords[0] += p._coords[0];
642  _coords[1] += p._coords[1];
643 #endif
644 
645 #if LIBMESH_DIM == 3
646  _coords[0] += p._coords[0];
647  _coords[1] += p._coords[1];
648  _coords[2] += p._coords[2];
649 #endif
650 
651 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ add_scaled()

void libMesh::TypeVector< Real >::add_scaled ( const TypeVector< T2 > &  p,
const Real &  factor 
)
inherited

Add a scaled value to this vector without creating a temporary.

Definition at line 658 of file type_vector.h.

659 {
660 #if LIBMESH_DIM == 1
661  _coords[0] += factor*p(0);
662 #endif
663 
664 #if LIBMESH_DIM == 2
665  _coords[0] += factor*p(0);
666  _coords[1] += factor*p(1);
667 #endif
668 
669 #if LIBMESH_DIM == 3
670  _coords[0] += factor*p(0);
671  _coords[1] += factor*p(1);
672  _coords[2] += factor*p(2);
673 #endif
674 
675 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ assign()

void libMesh::TypeVector< Real >::assign ( const TypeVector< T2 > &  p)
inherited

Assign to this vector without creating a temporary.

Definition at line 563 of file type_vector.h.

564 {
565  for (unsigned int i=0; i<LIBMESH_DIM; i++)
566  _coords[i] = p._coords[i];
567 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ contract()

CompareTypes< Real , T2 >::supertype libMesh::TypeVector< Real >::contract ( const TypeVector< T2 > &  p) const
inherited
Returns
The result of TypeVector::operator*().

Definition at line 903 of file type_vector.h.

904 {
905  return (*this)*(p);
906 }

◆ cross()

TypeVector< typename CompareTypes< Real , T2 >::supertype > libMesh::TypeVector< Real >::cross ( const TypeVector< T2 > &  v) const
inherited
Returns
The cross product of this vector with v.

Definition at line 913 of file type_vector.h.

914 {
915  typedef typename CompareTypes<T, T2>::supertype TS;
916  libmesh_assert_equal_to (LIBMESH_DIM, 3);
917 
918  // | i j k |
919  // |(*this)(0) (*this)(1) (*this)(2)|
920  // | p(0) p(1) p(2) |
921 
922  return TypeVector<TS>( _coords[1]*p._coords[2] - _coords[2]*p._coords[1],
923  -_coords[0]*p._coords[2] + _coords[2]*p._coords[0],
924  _coords[0]*p._coords[1] - _coords[1]*p._coords[0]);
925 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ norm()

auto libMesh::TypeVector< Real >::norm ( ) const-> decltype(std::norm(Real ()))
inherited
Returns
The magnitude of the vector, i.e. the square-root of the sum of the elements squared.

Definition at line 943 of file type_vector.h.

References libMesh::TensorTools::norm_sq(), and std::sqrt().

944 {
945  return std::sqrt(this->norm_sq());
946 }
MetaPhysicL::DualNumber< T, D > sqrt(const MetaPhysicL::DualNumber< T, D > &in)
auto norm_sq() const -> decltype(std::norm(Real()))
Definition: type_vector.h:974

◆ norm_sq()

auto libMesh::TypeVector< Real >::norm_sq ( ) const-> decltype(std::norm(Real ()))
inherited
Returns
The magnitude of the vector squared, i.e. the sum of the element magnitudes squared.

Definition at line 974 of file type_vector.h.

References libMesh::TensorTools::norm_sq().

975 {
976 #if LIBMESH_DIM == 1
977  return (TensorTools::norm_sq(_coords[0]));
978 #endif
979 
980 #if LIBMESH_DIM == 2
981  return (TensorTools::norm_sq(_coords[0]) +
983 #endif
984 
985 #if LIBMESH_DIM == 3
986  return (TensorTools::norm_sq(_coords[0]) +
989 #endif
990 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440
T norm_sq(std::complex< T > a)
Definition: tensor_tools.h:85

◆ operator!=()

bool libMesh::TypeVector< Real >::operator!= ( const TypeVector< Real > &  rhs) const
inherited
Returns
!(*this == rhs)

Definition at line 1068 of file type_vector.h.

1069 {
1070  return (!(*this == rhs));
1071 }

◆ operator()() [1/2]

const Real & libMesh::TypeVector< Real >::operator() ( const unsigned int  i) const
inherited
Returns
A const reference to the $ i^{th} $ entry of the vector.

Definition at line 573 of file type_vector.h.

574 {
575  libmesh_assert_less (i, LIBMESH_DIM);
576 
577  return _coords[i];
578 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator()() [2/2]

Real & libMesh::TypeVector< Real >::operator() ( const unsigned int  i)
inherited
Returns
A writable reference to the $ i^{th} $ entry of the vector.

Definition at line 584 of file type_vector.h.

585 {
586  libmesh_assert_less (i, LIBMESH_DIM);
587 
588  return _coords[i];
589 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator*() [1/2]

boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< Real , Scalar >::supertype > >::type libMesh::TypeVector< Real >::operator* ( const Scalar &  factor) const
inherited

Multiply this vector by a scalar value.

Returns
A copy of the result, this vector is unchanged.

Definition at line 770 of file type_vector.h.

771 {
772  typedef typename CompareTypes<T, Scalar>::supertype SuperType;
773 
774 #if LIBMESH_DIM == 1
775  return TypeVector<SuperType>(_coords[0]*factor);
776 #endif
777 
778 #if LIBMESH_DIM == 2
779  return TypeVector<SuperType>(_coords[0]*factor,
780  _coords[1]*factor);
781 #endif
782 
783 #if LIBMESH_DIM == 3
784  return TypeVector<SuperType>(_coords[0]*factor,
785  _coords[1]*factor,
786  _coords[2]*factor);
787 #endif
788 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator*() [2/2]

CompareTypes< Real , T2 >::supertype libMesh::TypeVector< Real >::operator* ( const TypeVector< T2 > &  p) const
inherited
Returns
The dot-product of this vector with another vector.
Note
The complex conjugate is not taken in the complex-valued case.
The vectors may contain different numeric types.

Definition at line 881 of file type_vector.h.

882 {
883 #if LIBMESH_DIM == 1
884  return _coords[0]*p._coords[0];
885 #endif
886 
887 #if LIBMESH_DIM == 2
888  return (_coords[0]*p._coords[0] +
889  _coords[1]*p._coords[1]);
890 #endif
891 
892 #if LIBMESH_DIM == 3
893  return (_coords[0]*p(0) +
894  _coords[1]*p(1) +
895  _coords[2]*p(2));
896 #endif
897 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator*=()

const TypeVector< Real > & libMesh::TypeVector< Real >::operator*= ( const Real &  factor)
inherited

Multiply this vector by a scalar value.

Returns
A reference to *this.

Definition at line 807 of file type_vector.h.

808 {
809 #if LIBMESH_DIM == 1
810  _coords[0] *= factor;
811 #endif
812 
813 #if LIBMESH_DIM == 2
814  _coords[0] *= factor;
815  _coords[1] *= factor;
816 #endif
817 
818 #if LIBMESH_DIM == 3
819  _coords[0] *= factor;
820  _coords[1] *= factor;
821  _coords[2] *= factor;
822 #endif
823 
824  return *this;
825 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator+()

TypeVector< typename CompareTypes< Real , T2 >::supertype > libMesh::TypeVector< Real >::operator+ ( const TypeVector< T2 > &  p) const
inherited

Add two vectors.

Returns
A copy of the result, this vector is unchanged.

Definition at line 597 of file type_vector.h.

598 {
599  typedef typename CompareTypes<T, T2>::supertype TS;
600 #if LIBMESH_DIM == 1
601  return TypeVector<TS> (_coords[0] + p._coords[0]);
602 #endif
603 
604 #if LIBMESH_DIM == 2
605  return TypeVector<TS> (_coords[0] + p._coords[0],
606  _coords[1] + p._coords[1]);
607 #endif
608 
609 #if LIBMESH_DIM == 3
610  return TypeVector<TS> (_coords[0] + p._coords[0],
611  _coords[1] + p._coords[1],
612  _coords[2] + p._coords[2]);
613 #endif
614 
615 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator+=()

const TypeVector< Real > & libMesh::TypeVector< Real >::operator+= ( const TypeVector< T2 > &  p)
inherited

Add to this vector.

Returns
A reference to *this.

Definition at line 622 of file type_vector.h.

623 {
624  this->add (p);
625 
626  return *this;
627 }
void add(const TypeVector< T2 > &)
Add to this vector without creating a temporary.
Definition: type_vector.h:634

◆ operator-() [1/2]

TypeVector< typename CompareTypes< Real , T2 >::supertype > libMesh::TypeVector< Real >::operator- ( const TypeVector< T2 > &  p) const
inherited

Subtract from this vector.

Returns
A copy of the result, this vector is unchanged.

Definition at line 683 of file type_vector.h.

684 {
685  typedef typename CompareTypes<T, T2>::supertype TS;
686 
687 #if LIBMESH_DIM == 1
688  return TypeVector<TS>(_coords[0] - p._coords[0]);
689 #endif
690 
691 #if LIBMESH_DIM == 2
692  return TypeVector<TS>(_coords[0] - p._coords[0],
693  _coords[1] - p._coords[1]);
694 #endif
695 
696 #if LIBMESH_DIM == 3
697  return TypeVector<TS>(_coords[0] - p._coords[0],
698  _coords[1] - p._coords[1],
699  _coords[2] - p._coords[2]);
700 #endif
701 
702 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator-() [2/2]

TypeVector< Real > libMesh::TypeVector< Real >::operator- ( ) const
inherited
Returns
The negative of this vector in a separate copy.

Definition at line 742 of file type_vector.h.

743 {
744 
745 #if LIBMESH_DIM == 1
746  return TypeVector(-_coords[0]);
747 #endif
748 
749 #if LIBMESH_DIM == 2
750  return TypeVector(-_coords[0],
751  -_coords[1]);
752 #endif
753 
754 #if LIBMESH_DIM == 3
755  return TypeVector(-_coords[0],
756  -_coords[1],
757  -_coords[2]);
758 #endif
759 
760 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440
TypeVector()
Empty constructor.
Definition: type_vector.h:452

◆ operator-=()

const TypeVector< Real > & libMesh::TypeVector< Real >::operator-= ( const TypeVector< T2 > &  p)
inherited

Subtract from this vector.

Returns
A reference to *this.

Definition at line 709 of file type_vector.h.

710 {
711  this->subtract (p);
712 
713  return *this;
714 }
void subtract(const TypeVector< T2 > &)
Subtract from this vector without creating a temporary.
Definition: type_vector.h:721

◆ operator/()

boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< Real , Scalar >::supertype > >::type libMesh::TypeVector< Real >::operator/ ( const Scalar &  factor) const
inherited

Divide each entry of this vector by scalar value.

Returns
A copy of the result, this vector is unchanged.

Definition at line 835 of file type_vector.h.

836 {
837  libmesh_assert_not_equal_to (factor, static_cast<T>(0.));
838 
839  typedef typename CompareTypes<T, Scalar>::supertype TS;
840 
841 #if LIBMESH_DIM == 1
842  return TypeVector<TS>(_coords[0]/factor);
843 #endif
844 
845 #if LIBMESH_DIM == 2
846  return TypeVector<TS>(_coords[0]/factor,
847  _coords[1]/factor);
848 #endif
849 
850 #if LIBMESH_DIM == 3
851  return TypeVector<TS>(_coords[0]/factor,
852  _coords[1]/factor,
853  _coords[2]/factor);
854 #endif
855 
856 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator/=()

const TypeVector< Real > & libMesh::TypeVector< Real >::operator/= ( const Real &  factor)
inherited

Divide each entry of this vector by scalar value.

Returns
A reference to *this.

Definition at line 864 of file type_vector.h.

865 {
866  libmesh_assert_not_equal_to (factor, static_cast<T>(0.));
867 
868  for (unsigned int i=0; i<LIBMESH_DIM; i++)
869  _coords[i] /= factor;
870 
871  return *this;
872 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator<()

bool libMesh::TypeVector< Real >::operator< ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is "less" than rhs.

Useful for sorting. Also used for choosing some arbitrary basis function orientations.

◆ operator<=()

bool libMesh::TypeVector< Real >::operator<= ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is <= to rhs.

Useful for sorting. Also used for choosing some arbitrary constraint equation directions.

◆ operator==()

bool libMesh::TypeVector< Real >::operator== ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this(i)==rhs(i) for each component of the vector.
Note
For floating point types T, the function absolute_fuzzy_equals() may be a more appropriate choice.

Definition at line 1046 of file type_vector.h.

1047 {
1048 #if LIBMESH_DIM == 1
1049  return (_coords[0] == rhs._coords[0]);
1050 #endif
1051 
1052 #if LIBMESH_DIM == 2
1053  return (_coords[0] == rhs._coords[0] &&
1054  _coords[1] == rhs._coords[1]);
1055 #endif
1056 
1057 #if LIBMESH_DIM == 3
1058  return (_coords[0] == rhs._coords[0] &&
1059  _coords[1] == rhs._coords[1] &&
1060  _coords[2] == rhs._coords[2]);
1061 #endif
1062 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ operator>()

bool libMesh::TypeVector< Real >::operator> ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is "greater" than rhs.

Useful for sorting. Also used for choosing some arbitrary basis function orientations.

◆ operator>=()

bool libMesh::TypeVector< Real >::operator>= ( const TypeVector< Real > &  rhs) const
inherited
Returns
true if this vector is >= rhs.

Useful for sorting. Also used for choosing some arbitrary constraint equation directions.

◆ print()

void libMesh::TypeVector< Real >::print ( std::ostream &  os = libMesh::out) const
inherited

Formatted print, by default to libMesh::out.

◆ relative_fuzzy_equals()

bool libMesh::TypeVector< Real >::relative_fuzzy_equals ( const TypeVector< Real > &  rhs,
Real  tol = TOLERANCE 
) const
inherited
Returns
true if two vectors are equal to within a relative tolerance of tol.

Definition at line 1021 of file type_vector.h.

References std::abs().

1022 {
1023 #if LIBMESH_DIM == 1
1024  return this->absolute_fuzzy_equals(rhs, tol *
1025  (std::abs(_coords[0]) + std::abs(rhs._coords[0])));
1026 #endif
1027 
1028 #if LIBMESH_DIM == 2
1029  return this->absolute_fuzzy_equals(rhs, tol *
1030  (std::abs(_coords[0]) + std::abs(rhs._coords[0]) +
1031  std::abs(_coords[1]) + std::abs(rhs._coords[1])));
1032 #endif
1033 
1034 #if LIBMESH_DIM == 3
1035  return this->absolute_fuzzy_equals(rhs, tol *
1036  (std::abs(_coords[0]) + std::abs(rhs._coords[0]) +
1037  std::abs(_coords[1]) + std::abs(rhs._coords[1]) +
1038  std::abs(_coords[2]) + std::abs(rhs._coords[2])));
1039 #endif
1040 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440
double abs(double a)
bool absolute_fuzzy_equals(const TypeVector< Real > &rhs, Real tol=TOLERANCE) const
Definition: type_vector.h:996

◆ size()

auto libMesh::TypeVector< Real >::size ( ) const-> decltype(std::norm(Real ()))
inherited
Returns
The magnitude of the vector, i.e. the square-root of the sum of the elements squared.
Deprecated:
Use the norm() function instead.

Definition at line 932 of file type_vector.h.

References std::norm().

933 {
934  libmesh_deprecated();
935  return this->norm();
936 }
auto norm() const -> decltype(std::norm(Real()))
Definition: type_vector.h:943

◆ size_sq()

auto libMesh::TypeVector< Real >::size_sq ( ) const-> decltype(std::norm(Real ()))
inherited
Returns
The magnitude of the vector squared, i.e. the sum of the element magnitudes squared.
Deprecated:
Use the norm_sq() function instead.

Definition at line 963 of file type_vector.h.

References libMesh::TensorTools::norm_sq().

964 {
965  libmesh_deprecated();
966  return this->norm_sq();
967 }
auto norm_sq() const -> decltype(std::norm(Real()))
Definition: type_vector.h:974

◆ slice() [1/2]

const Real & libMesh::TypeVector< Real >::slice ( const unsigned int  i) const
inherited

Definition at line 174 of file type_vector.h.

174 { return (*this)(i); }

◆ slice() [2/2]

Real & libMesh::TypeVector< Real >::slice ( const unsigned int  i)
inherited

Definition at line 180 of file type_vector.h.

180 { return (*this)(i); }

◆ subtract()

void libMesh::TypeVector< Real >::subtract ( const TypeVector< T2 > &  p)
inherited

Subtract from this vector without creating a temporary.

Definition at line 721 of file type_vector.h.

722 {
723  for (unsigned int i=0; i<LIBMESH_DIM; i++)
724  _coords[i] -= p._coords[i];
725 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ subtract_scaled()

void libMesh::TypeVector< Real >::subtract_scaled ( const TypeVector< T2 > &  p,
const Real &  factor 
)
inherited

Subtract a scaled value from this vector without creating a temporary.

Definition at line 732 of file type_vector.h.

733 {
734  for (unsigned int i=0; i<LIBMESH_DIM; i++)
735  _coords[i] -= factor*p(i);
736 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

◆ unit()

TypeVector< Real > libMesh::TypeVector< Real >::unit ( ) const
inherited
Returns
A unit vector in the direction of *this.

Definition at line 1136 of file type_vector.h.

References std::norm().

1137 {
1138 
1139  auto && length = norm();
1140 
1141  libmesh_assert_not_equal_to (length, static_cast<Real>(0.));
1142 
1143 #if LIBMESH_DIM == 1
1144  return TypeVector<T>(_coords[0]/length);
1145 #endif
1146 
1147 #if LIBMESH_DIM == 2
1148  return TypeVector<T>(_coords[0]/length,
1149  _coords[1]/length);
1150 #endif
1151 
1152 #if LIBMESH_DIM == 3
1153  return TypeVector<T>(_coords[0]/length,
1154  _coords[1]/length,
1155  _coords[2]/length);
1156 #endif
1157 
1158 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440
auto norm() const -> decltype(std::norm(Real()))
Definition: type_vector.h:943

◆ write_unformatted()

void libMesh::TypeVector< Real >::write_unformatted ( std::ostream &  out,
const bool  newline = true 
) const
inherited

Unformatted print to the stream out.

Simply prints the elements of the vector separated by spaces. Also prints a newline by default, however, this behavior can be controlled with the newline parameter.

◆ zero()

void libMesh::TypeVector< Real >::zero ( )
inherited

Set all entries of the vector to 0.

Definition at line 952 of file type_vector.h.

953 {
954  for (unsigned int i=0; i<LIBMESH_DIM; i++)
955  _coords[i] = 0.;
956 }
Real _coords[LIBMESH_DIM]
The coordinates of the TypeVector.
Definition: type_vector.h:440

Friends And Related Function Documentation

◆ Node

friend class Node
friend

Make the derived class a friend.

Definition at line 76 of file point.h.

Member Data Documentation

◆ _coords

Real libMesh::TypeVector< Real >::_coords[LIBMESH_DIM]
protectedinherited

The coordinates of the TypeVector.

Definition at line 440 of file type_vector.h.


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