Flow123d
release_3.0.0-973-g92f55e826
|
Go to the documentation of this file.
21 unsigned int bulk_element_idx)
22 : component_element_idx_(component_element_idx), bulk_element_idx_(bulk_element_idx)
26 template<
unsigned int dimA,
unsigned int dimB>
30 template<
unsigned int dimA,
unsigned int dimB>
35 template<
unsigned int dimA,
unsigned int dimB>
40 for(
unsigned int i = 0; i < iaux.
size(); i++)
47 template<
unsigned int dimA,
unsigned int dimB>
52 template<
unsigned int dimA,
unsigned int dimB>
58 if(i_points_.size() > 1)
59 for(
unsigned int i=0; i < i_points_.size()-1; i++)
61 length += abs(i_points_[i].comp_coords()[0] - i_points_[i+1].comp_coords()[0]);
72 double subtotal = 0.0;
75 for(
unsigned int j = 2; j <
i_points_.size();j++){
81 return fabs(subtotal/2);
86 template<
unsigned int dimA,
unsigned int dimB>
90 template<
unsigned int dimA,
unsigned int dimB>
94 template<
unsigned int dimA,
unsigned int dimB>
96 : comp_coords_(p.local_bcoords_A().subvec(1,dimA)), bulk_coords_(p.local_bcoords_B().subvec(1,dimB))
99 template<
unsigned int dimA,
unsigned int dimB>
101 const arma::vec::fixed< dimB >& bulk_coords)
102 : comp_coords_(comp_coords), bulk_coords_(bulk_coords)
107 template<
unsigned int dimA,
unsigned int dimB>
114 double complement = 1.0;
115 for(
unsigned int i=0; i<dimA; i++)
117 c += comp_coords_[i]*comp_ele.
node(i+1)->
point();
118 complement -= comp_coords_[i];
120 c += complement * comp_ele.
node(0)->
point();
130 os <<
"IntersectionLocal<" << dimA <<
"," << dimB <<
">: c " << il.component_element_idx_ <<
", b " <<
131 il.bulk_element_idx_ <<
", size " << il.
i_points_.size() << endl;
132 for (
unsigned int i = 0; i < il.
i_points_.size(); i++) {
133 os << i <<
": " << il[i] << endl;
141 for(
unsigned j= 0; j < dimA-1; j++)
145 for(
unsigned j= 0; j < dimB-1; j++)
~IntersectionPoint()
Destructor.
ostream & operator<<(ostream &os, const IntersectionLocal< dimA, dimB > &il)
template ostream & operator<<< 2, 3 >(ostream &os, const IntersectionPoint< 2, 3 > &s)
double compute_measure() const override
Computes the relative measure of intersection object.
const Node * node(unsigned int ni) const
arma::vec::fixed< dimB > bulk_coords_
Local coordinates of an IP on simplex<dimB>.
IntersectionPoint()
Default constructor.
arma::vec3 coords(ElementAccessor< 3 > comp_ele) const
template ostream & operator<<< 2, 2 >(ostream &os, const IntersectionPoint< 2, 2 > &s)
std::vector< IntersectionPoint< dimA, dimB > > i_points_
Vector of intersection points.
Internal class representing intersection object.
unsigned int size() const
Returns number of intersection points.
Internal auxiliary class representing intersection object of simplex<dimA> and simplex<dimB>.
template ostream & operator<<< 1, 3 >(ostream &os, const IntersectionPoint< 1, 3 > &s)
Class represents intersection of two elements.
Class represents an intersection point of simplex<N> and simplex<M>. It contains barycentric coordina...
#define ASSERT_LT_DBG(a, b)
Definition of comparative assert macro (Less Than) only for debug mode.
arma::vec::fixed< dimA > comp_coords_
Local coordinates of an IP on simplex<dimA>.
template ostream & operator<<< 1, 2 >(ostream &os, const IntersectionPoint< 1, 2 > &s)
IntersectionLocal()
Default constructor.
~IntersectionLocal()
Destructor.
Internal class representing intersection point.
Common base for intersection object.
Classes with algorithms for computation of intersections of meshes.