ViennaGrid - The Vienna Grid Library  2.1.0
Namespaces | Functions
viennagrid/algorithm/geometry.hpp File Reference

Contains various functions for computing geometric quantities. More...

#include <limits>
#include "viennagrid/mesh/mesh.hpp"
#include "viennagrid/topology/quadrilateral.hpp"
#include "viennagrid/algorithm/inner_prod.hpp"
#include "viennagrid/algorithm/norm.hpp"
#include "viennagrid/algorithm/cross_prod.hpp"
#include "viennagrid/algorithm/detail/numeric.hpp"

Go to the source code of this file.

Namespaces

namespace  viennagrid
 

The main ViennaGrid namespace. Most user functionality resides directly in this namespace rather than in sub-namespaces.


namespace  viennagrid::detail
 

Namespace for implementation details. Not intended to be used directly by a library user.


Functions

template<typename PointIteratorT >
std::pair< typename
std::iterator_traits
< PointIteratorT >::value_type,
typename std::iterator_traits
< PointIteratorT >::value_type > 
bounding_box (PointIteratorT it, PointIteratorT const &it_end)
 Calculates the bounding box of a point iterator range. A pair of points is return, where the first represents the coordinate-wise minimum and the second represents the coordinate-wise maximum.
template<typename MeshT >
std::pair< typename
viennagrid::result_of::point
< MeshT >::type, typename
viennagrid::result_of::point
< MeshT >::type > 
bounding_box (MeshT const &mesh)
 Calculates the bounding box a mesh. A pair of points is return, where the first represents the coordinate-wise minimum and the second represents the coordinate-wise maximum.
template<typename PointT >
viennagrid::result_of::coord
< PointT >::type 
determinant (PointT const &p0)
 Calculates the determinant of a 1x1 matrix with the columns provided as 1D-points.
template<typename PointT >
viennagrid::result_of::coord
< PointT >::type 
determinant (PointT const &p0, PointT const &p1)
 Calculates the determinant of a 2x2 matrix with the columns provided as 2D-points.
template<typename PointT >
viennagrid::result_of::coord
< PointT >::type 
determinant (PointT const &p0, PointT const &p1, PointT const &p2)
 Calculates the determinant of a 3x3 matrix with the columns provided as 3D-points.
template<typename MeshT >
viennagrid::result_of::coord
< MeshT >::type 
mesh_size (MeshT const &mesh)
 Calculates the size of a mesh: ||bounding_box.min - bounding_box.max||.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector (PointAccessorT const point_accessor, ElementT const &element)
 Calculates the normal vector of an element.
template<typename ElementT >
viennagrid::result_of::point
< ElementT >::type 
normal_vector (ElementT const &element)
 Calculates the normal vector of an element.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::vertex_tag, viennagrid::dimension_tag< 1 >)
 Implementation for calculating a normal vector of a vertex in 1D.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::line_tag, viennagrid::dimension_tag< 2 >)
 Implementation for calculating a normal vector of a line in 2D.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::triangle_tag, viennagrid::dimension_tag< 3 >)
 Implementation for calculating a normal vector of a triangle in 3D.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::quadrilateral_tag, viennagrid::dimension_tag< 3 >)
 Implementation for calculating a normal vector of a quadrilateral in 3D.
template<typename IteratorT , typename NumericConfigT >
std::size_t orthogonalize (IteratorT start, IteratorT end, NumericConfigT nc)
 Makes a set of vectors orthogonal (Gram–Schmidt process step).
template<typename VectorIteratorT , typename VectorT >
VectorT orthogonalize_vector (VectorIteratorT it, VectorIteratorT const &end, VectorT vec)
 Makes a vector orthogonal to a set of linearly independent orthogonal vectors (Gram–Schmidt process step)

Detailed Description

Contains various functions for computing geometric quantities.