75 #ifndef SLIP_REGULARVECTOR2DFIELD2D_HPP
76 #define SLIP_REGULARVECTOR2DFIELD2D_HPP
101 #include <boost/serialization/access.hpp>
102 #include <boost/serialization/split_member.hpp>
103 #include <boost/serialization/version.hpp>
104 #include <boost/serialization/base_object.hpp>
110 class stride_iterator;
113 class iterator2d_box;
116 class iterator2d_range;
119 class const_iterator2d_box;
122 class const_iterator2d_range;
125 template <
typename T>
128 template <
typename T>
131 template <
typename T>
134 template <
typename T,
typename Gr
idT>
137 template <
typename T,
typename Gr
idT>
138 std::ostream& operator<<(std::ostream & out, const slip::RegularVector2dField2d<T,GridT>& a);
164 template <
typename T,
typename Gr
idT =
double>
214 static const std::size_t
DIM = 2;
226 base(),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
238 base(height,width),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
254 base(height,width),init_point_(init_point),grid_step_(grid_step)
266 base(height,width,val),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
282 base(height,width,val),init_point_(init_point),grid_step_(grid_step)
294 base(height,width,val),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
313 base(height,width,val),init_point_(init_point),grid_step_(grid_step)
325 base(height,width,val),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
341 base(height,width,val),init_point_(init_point),grid_step_(grid_step)
355 template<
typename InputIterator>
360 base(height,width,first,last),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
379 template<
typename InputIterator>
386 base(height,width,first,last),init_point_(init_point),grid_step_(grid_step)
409 template<
typename InputIterator>
412 InputIterator first1,
414 InputIterator first2):
415 base(height,width),init_point_(slip::
Point2d<GridT>()),grid_step_(slip::
Point2d<GridT>(GridT(1),GridT(1)))
418 std::vector<InputIterator> first_iterators_list(2);
419 first_iterators_list[0] = first1;
420 first_iterators_list[1] = first2;
421 this->
fill(first_iterators_list,last1);
440 template<
typename InputIterator>
445 InputIterator first1,
447 InputIterator first2):
448 base(height,width),init_point_(init_point),grid_step_(grid_step)
451 std::vector<InputIterator> first_iterators_list(2);
452 first_iterators_list[0] = first1;
453 first_iterators_list[1] = first2;
454 this->
fill(first_iterators_list,last1);
463 base(rhs),init_point_(rhs.init_point_),grid_step_(rhs.grid_step_)
481 std::string
name()
const;
494 friend std::ostream& operator<< <>(std::ostream & out,
const self& a);
525 const std::string& title,
526 const std::string& zone)
const;
934 template<
typename Container2D>
937 const std::size_t der_order,
938 const std::size_t sch_order,
939 Container2D& result)
const
941 assert(component < 2);
942 assert(sch_order >= der_order);
945 assert((sch_order / 2) <= sch_order);
946 const std::size_t sch_shift = sch_order / 2;
950 std::vector<slip::Matrix<double>::iterator> kernels_iterators(sch_order + 1);
951 for(std::size_t i = 0; i < (sch_order + 1); ++i)
953 kernels_iterators[i] = kernels.
row_begin(i);
970 result.row_begin(i));
988 result.col_rbegin(j));
1039 template<
typename Container2D>
1042 const std::size_t der_order,
1043 const std::size_t sch_order,
1045 Container2D& result)
const
1047 assert(component < 2);
1048 assert(sch_order >= der_order);
1051 assert((sch_order / 2) <= sch_order);
1052 const std::size_t sch_shift = sch_order / 2;
1056 std::vector<slip::Matrix<double>::iterator> kernels_iterators(sch_order + 1);
1057 for(std::size_t i = 0; i < (sch_order + 1); ++i)
1059 kernels_iterators[i] = kernels.
row_begin(i);
1074 this->
row_end(component,i, range_row),
1079 result.row_begin(i, range_row));
1092 this->
col_rend(component,j, range_col),
1097 result.col_rbegin(j, range_col));
1118 template<
typename Container2D>
1120 Container2D& result)
const
1122 assert(sch_order >= 1);
1123 assert((sch_order / 2) <= sch_order);
1125 const std::size_t der_order = 1;
1128 std::size_t component = 0;
1162 template<
typename Container2D>
1164 Container2D& result)
const
1166 assert(sch_order >= 1);
1167 assert((sch_order / 2) <= sch_order);
1169 const std::size_t der_order = 1;
1173 std::size_t component = 1;
1202 template<
typename Container2D>
1204 Container2D& result)
1206 assert(sch_order >= 1);
1207 assert((sch_order / 2) <= sch_order);
1209 const std::size_t der_order = 1;
1214 self Mtmpx(rows,cols);
1222 Mtmpx.bottom_right());
1225 self Mtmpy(rows,cols);
1233 Mtmpy.bottom_right());
1239 result[i][j] = Mtmpx[i][j][1] * Mtmpy[i][j][0] - Mtmpx[i][j][0] * Mtmpy[i][j][1];
1255 template<
typename Container2D>
1271 template<
typename Container2D>
1289 template<
class Archive>
1290 void save(Archive & ar,
const unsigned int version)
const
1292 ar & init_point_ & grid_step_;
1293 ar & boost::serialization::base_object<slip::GenericMultiComponent2d<slip::Vector2d<T> > >(*this);
1295 template<
class Archive>
1296 void load(Archive & ar,
const unsigned int version)
1298 ar & init_point_ & grid_step_;
1299 ar & boost::serialization::base_object<slip::GenericMultiComponent2d<slip::Vector2d<T> > >(*this);
1301 BOOST_SERIALIZATION_SPLIT_MEMBER()
1347 template<
typename T,
typename Gr
idT>
1348 RegularVector2dField2d<T,GridT>
operator+(
const RegularVector2dField2d<T,GridT>& M1,
1357 template<
typename T,
typename Gr
idT>
1358 RegularVector2dField2d<T,GridT>
operator+(
const T& val,
1359 const RegularVector2dField2d<T,GridT>& M1);
1368 template<
typename T,
typename Gr
idT>
1369 RegularVector2dField2d<T,GridT>
operator-(
const RegularVector2dField2d<T,GridT>& M1,
1378 template<
typename T,
typename Gr
idT>
1379 RegularVector2dField2d<T,GridT>
operator-(
const T& val,
1380 const RegularVector2dField2d<T,GridT>& M1);
1390 template<
typename T,
typename Gr
idT>
1391 RegularVector2dField2d<T,GridT>
operator*(
const RegularVector2dField2d<T,GridT>& M1,
1400 template<
typename T,
typename Gr
idT>
1401 RegularVector2dField2d<T,GridT>
operator*(
const T& val,
1402 const RegularVector2dField2d<T,GridT>& M1);
1412 template<
typename T,
typename Gr
idT>
1413 RegularVector2dField2d<T,GridT>
operator/(
const RegularVector2dField2d<T,GridT>& M1,
1425 template<
typename T,
typename Gr
idT>
1426 RegularVector2dField2d<T,GridT>
operator+(
const RegularVector2dField2d<T,GridT>& M1,
1427 const RegularVector2dField2d<T,GridT>& M2);
1435 template<
typename T,
typename Gr
idT>
1436 RegularVector2dField2d<T,GridT>
operator+(
const RegularVector2dField2d<T,GridT>& M1,
1445 template<
typename T,
typename Gr
idT>
1447 const RegularVector2dField2d<T,GridT>& M1);
1459 template<
typename T,
typename Gr
idT>
1460 RegularVector2dField2d<T,GridT>
operator-(
const RegularVector2dField2d<T,GridT>& M1,
1461 const RegularVector2dField2d<T,GridT>& M2);
1470 template<
typename T,
typename Gr
idT>
1471 RegularVector2dField2d<T,GridT>
operator-(
const RegularVector2dField2d<T,GridT>& M1,
1480 template<
typename T,
typename Gr
idT>
1482 const RegularVector2dField2d<T,GridT>& M1);
1494 template<
typename T,
typename Gr
idT>
1495 RegularVector2dField2d<T,GridT>
operator*(
const RegularVector2dField2d<T,GridT>& M1,
1496 const RegularVector2dField2d<T,GridT>& M2);
1505 template<
typename T,
typename Gr
idT>
1506 RegularVector2dField2d<T,GridT>
operator*(
const RegularVector2dField2d<T,GridT>& M1,
1515 template<
typename T,
typename Gr
idT>
1517 const RegularVector2dField2d<T,GridT>& M1);
1529 template<
typename T,
typename Gr
idT>
1530 RegularVector2dField2d<T,GridT>
operator/(
const RegularVector2dField2d<T,GridT>& M1,
1531 const RegularVector2dField2d<T,GridT>& M2);
1539 template<
typename T,
typename Gr
idT>
1540 RegularVector2dField2d<T,GridT>
operator/(
const RegularVector2dField2d<T,GridT>& M1,
1565 template<
typename T,
typename Gr
idT>
1569 std::fill_n(this->begin(),this->size(),val);
1574 template<
typename T,
typename Gr
idT>
1578 std::fill_n(this->begin(),this->size(),val);
1583 template<
typename T,
typename Gr
idT>
1588 return (*
this)[i][j][0];
1591 template<
typename T,
typename Gr
idT>
1596 return (*
this)[i][j][0];
1599 template<
typename T,
typename Gr
idT>
1604 return this->Vx1(i,j);
1607 template<
typename T,
typename Gr
idT>
1612 return this->Vx1(i,j);
1615 template<
typename T,
typename Gr
idT>
1620 return (*
this)[i][j][1];
1623 template<
typename T,
typename Gr
idT>
1628 return (*
this)[i][j][1];
1630 template<
typename T,
typename Gr
idT>
1635 return this->Vx2(i,j);
1638 template<
typename T,
typename Gr
idT>
1643 return this->Vx2(i,j);
1646 template<
typename T,
typename Gr
idT>
1652 return (*
this)[i][j].Euclidean_norm();
1655 template<
typename T,
typename Gr
idT>
1661 return (*
this)[i][j].angle();
1664 template<
typename T,
typename Gr
idT>
1669 return this->init_point_[0] + GridT(j) * this->grid_step_[0];
1672 template<
typename T,
typename Gr
idT>
1677 return this->init_point_[1]
1678 + GridT(this->rows() - 1 - i) * this->grid_step_[1];
1681 template<
typename T,
typename Gr
idT>
1686 return this->x1(i,j);
1689 template<
typename T,
typename Gr
idT>
1694 return this->x2(i,j);
1698 template<
typename T,
typename Gr
idT>
1702 return this->init_point_;
1705 template<
typename T,
typename Gr
idT>
1709 this->init_point_ = init_point;
1712 template<
typename T,
typename Gr
idT>
1716 return this->grid_step_;
1719 template<
typename T,
typename Gr
idT>
1723 this->grid_step_ = grid_step;
1726 template<
typename T,
typename Gr
idT>
1734 template<
typename T,
typename Gr
idT>
1742 template<
typename T,
typename Gr
idT>
1750 template<
typename T,
typename Gr
idT>
1760 template<
typename T,
typename Gr
idT>
1768 template<
typename T,
typename Gr
idT>
1776 template<
typename T,
typename Gr
idT>
1784 template<
typename T,
typename Gr
idT>
1794 template<
typename T,
typename Gr
idT>
1799 std::transform(this->begin(),this->end(),tmp.
begin(),std::negate<slip::Vector2d<T> >());
1803 template<
typename T,
typename Gr
idT>
1807 assert(this->dim1() == rhs.
dim1());
1808 assert(this->dim2() == rhs.
dim2());
1817 std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::plus<typename RegularVector2dField2d::value_type>());
1821 template<
typename T,
typename Gr
idT>
1825 assert(this->dim1() == rhs.
dim1());
1826 assert(this->dim2() == rhs.
dim2());
1835 std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::minus<typename RegularVector2dField2d::value_type>());
1839 template<
typename T,
typename Gr
idT>
1843 assert(this->dim1() == rhs.
dim1());
1844 assert(this->dim2() == rhs.
dim2());
1853 std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::multiplies<typename RegularVector2dField2d::value_type>());
1857 template<
typename T,
typename Gr
idT>
1861 assert(this->dim1() == rhs.
dim1());
1862 assert(this->dim2() == rhs.
dim2());
1871 std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::divides<typename RegularVector2dField2d::value_type>());
1875 template <
typename T,
typename Gr
idT>
1881 out<<
"init point: "<<a.init_point_<<std::endl;
1882 out<<
"grid step: "<<a.grid_step_<<std::endl;
1883 out<<
"data: "<<std::endl;
1885 size_type rows = a.
rows();
1886 size_type cols = a.
cols();
1888 for(size_type i = 0; i < rows; ++i)
1890 for(size_type j = 0; j < cols; ++j)
1900 template<
typename T,
typename Gr
idT>
1906 template<
typename T,
typename Gr
idT>
1910 slip::write_gnuplot_vect2d<slip::RegularVector2dField2d<T,GridT> >(*
this,
1911 this->init_point_,this->grid_step_,file_path_name);
1914 template<
typename T,
typename Gr
idT>
1917 const std::string& title,
1918 const std::string& zone)
const
1920 slip::write_tecplot_vect2d<slip::RegularVector2dField2d<T,GridT> >(*
this,
1927 template<
typename T,
typename Gr
idT>
1931 slip::read_gnuplot_vect2d<slip::RegularVector2dField2d<T,GridT> >(file_path_name,*
this, this->init_point_,
1935 template<
typename T,
typename Gr
idT>
1940 slip::read_tecplot_vect2d<slip::RegularVector2dField2d<T,GridT> >(file_path_name,*
this,this->init_point_,this->grid_step_);
1944 template<
typename T,
typename Gr
idT>
1954 template<
typename T,
typename Gr
idT>
1962 template<
typename T,
typename Gr
idT>
1972 template<
typename T,
typename Gr
idT>
1981 template<
typename T,
typename Gr
idT>
1991 template<
typename T,
typename Gr
idT>
2000 template<
typename T,
typename Gr
idT>
2010 template<
typename T,
typename Gr
idT>
2022 template<
typename T,
typename Gr
idT>
2032 template<
typename T,
typename Gr
idT>
2042 template<
typename T,
typename Gr
idT>
2053 template<
typename T,
typename Gr
idT>
2063 template<
typename T,
typename Gr
idT>
2072 template<
typename T,
typename Gr
idT>
2085 template<
typename T,
typename Gr
idT>
2095 template<
typename T,
typename Gr
idT>
2104 template<
typename T,
typename Gr
idT>
2117 template<
typename T,
typename Gr
idT>
2131 #endif //SLIP_REGULARVECTOR2DFIELD2D_HPP
RegularVector2dField2d()
Constructs a RegularVector2dField2d.
void minus(InputIterator1 __first1, InputIterator1 __last1, InputIterator2 __first2, OutputIterator __result)
Computes the difference of two ranges.
const_pointer const_row_iterator
friend class boost::serialization::access
T & Vx2(const size_type i, const size_type j)
Subscript access to second element of the data contained in the RegularVector2dField2d.
const GridT x(const size_type i, const size_type j) const
Subscript access to the real x1 value of the indexed (i,j) point of the RegularVector2dField2d.
CoordType height() const
compute the height of the Box2d.
std::reverse_iterator< const_iterator > const_reverse_iterator
slip::kstride_iterator< const_vector2d_pointer, 2 > const_vector2d_iterator
iterator begin()
Returns a read/write iterator that points to the first element in the GenericMultiComponent2d. Iteration is done in ordinary element order.
void vorticity(const std::size_t sch_order, Container2D &result) const
Computes finite differences vorticity (curl) of a RegularVector2dField2d.
This is a GenericMultiComponent2d class. This container statisfies the BidirectionnalContainer concep...
void read_tecplot(const std::string &file_path_name)
Reads a RegularVector2dField2d from a tecplot file path name.
T & v(const size_type i, const size_type j)
Subscript access to second element of the data contained in the RegularVector2dField2d.
RegularVector2dField2d(const size_type height, const size_type width, const T *val)
Constructs a RegularVector2dField2d initialized by an array val.
size_type cols() const
Returns the number of columns (second dimension size) in the GenericMultiComponent2d.
slip::RegularVector2dField2d< unsigned long, double > RegularVector2dField2d_ul
unsigned long alias
std::string name() const
Returns the name of the class.
void set_grid_step(const slip::Point2d< GridT > &grid_step)
Write access to the grid step of the grid.
norm_type Euclidean_norm() const
Returns the Euclidean norm of the elements of the kvector.
RegularVector2dField2d< float, double > Regular2D3Cf
float alias
slip::RegularVector2dField2d< unsigned short, double > RegularVector2dField2d_us
unsigned long alias
Provides a class to manipulate multicomponent 2d containers.
void read_gnuplot(const std::string &file_path_name)
Reads a RegularVector2dField2d from a gnuplot file path name.
Color< T > operator+(const Color< T > &V1, const Color< T > &V2)
iterator begin()
Returns a read/write iterator that points to the first element in the Matrix. Iteration is done in or...
Provides a class to manipulate iterator2d within a slip::Box2d. It is used to iterate throw 2d contai...
void divides(InputIterator1 __first1, InputIterator1 __last1, InputIterator2 __first2, OutputIterator __result)
Computes the pointwise division of two ranges.
RegularVector2dField2d(const size_type height, const size_type width, InputIterator first, InputIterator last)
Contructs a RegularVector2dField2d from a range.
size_type dim2() const
Returns the number of columns (second dimension size) in the GenericMultiComponent2d.
RegularVector2dField2d(const size_type height, const size_type width, InputIterator first1, InputIterator last1, InputIterator first2)
Contructs a RegularVector2dField2d from a 2 ranges.
CoordType width() const
compute the width of the Box2d.
slip::GenericMultiComponent2d< slip::Vector2d< T > >::const_iterator2d const_iterator2d
row_iterator row_begin(const size_type row)
Returns a read/write iterator that points to the first element of the row row in the GenericMultiComp...
const_pointer const_iterator
void bottom_right(Point< CoordType, 2 >)
Accessor/Mutator of the bottom_right point (p2) of Box2d.
ptrdiff_t difference_type
RegularVector2dField2d(const size_type height, const size_type width, const slip::Vector2d< T > &val)
Constructs a RegularVector2dField2d initialized by the scalar value val.
std::reverse_iterator< iterator > reverse_row_iterator
Provides some derivative algorithms and derivative functors.
RegularVector2dField2d(const size_type height, const size_type width, const slip::Point2d< GridT > &init_point, const slip::Point2d< GridT > &grid_step)
Constructs a RegularVector2dField2d.
row_iterator row_end(const size_type row)
Returns a read/write iterator that points one past the end element of the row row in the GenericMulti...
void write_gnuplot(const std::string &file_path_name) const
Writes a RegularVector2dField2d to a gnuplot file path name.
const slip::Point2d< GridT > & get_grid_step() const
Read access to the init point of the grid.
Provides a class to iterate a 1d range according to a constant step.
slip::Vector2d< T > value_type
slip::lin_alg_traits< value_type >::value_type norm_type
Provides a class to manipulate 2d Vector.
GenericMultiComponent2d< slip::Vector2d< T > > base
slip::GenericMultiComponent2d< slip::Vector2d< T > >::iterator2d iterator2d
This is a 2d Field containing slip::Vector2d associated with a regular grid. This container statisfie...
RegularVector2dField2d(const size_type height, const size_type width, const slip::Point2d< GridT > &init_point, const slip::Point2d< GridT > &grid_step, InputIterator first, InputIterator last)
Contructs a RegularVector2dField2d from a range.
void set_init_point(const slip::Point2d< GridT > &init_point)
Write access to the init point of the grid.
This is a point2d class, a specialized version of Point<CoordType,DIM> with DIM = 2...
RegularVector2dField2d(const size_type height, const size_type width, const slip::Point2d< GridT > &init_point, const slip::Point2d< GridT > &grid_step, const T *val)
Constructs a RegularVector2dField2d initialized by an array val.
self & operator/=(const T &val)
RegularVector2dField2d(const self &rhs)
Constructs a copy of the RegularVector2dField2d rhs.
size_type height() const
Returns the height (first dimension size) in the GenericMultiComponent2d.
slip::kstride_iterator< vector2d_pointer, 2 > vector2d_iterator
std::reverse_iterator< col_iterator > reverse_col_iterator
size_type dim1() const
Returns the number of rows (first dimension size) in the GenericMultiComponent2d. ...
This is some iterator to iterate a 2d container into a Box area defined by the indices of the 2d cont...
self & operator-=(const T &val)
RegularVector2dField2d(const size_type height, const size_type width, const slip::Point2d< GridT > &init_point, const slip::Point2d< GridT > &grid_step, const slip::Vector2d< T > &val)
Constructs a RegularVector2dField2d initialized by the scalar value val.
RegularVector2dField2d(const size_type height, const size_type width, const slip::Point2d< GridT > &init_point, const slip::Point2d< GridT > &grid_step, InputIterator first1, InputIterator last1, InputIterator first2)
Contructs a RegularVector2dField2d from a 2 ranges.
void derivative_2d(Iterator2d1 I_up, Iterator2d1 I_bot, const slip::Point2d< T > &grid_step, slip::SPATIAL_DIRECTION der_dir, const std::size_t der_order, const std::size_t sch_order, Iterator2d2 R_up, Iterator2d2 R_bot)
Computes finite differences derivatives of a 2d range.
reverse_col_iterator col_rend(const size_type col)
Returns a read/write reverse iterator that points one past the first element of the column column in ...
RegularVector2dField2d< float, double > Regular2D3C_f
float alias
T & u(const size_type i, const size_type j)
Subscript access to first element of the data contained in the RegularVector2dField2d.
iterator begin()
Returns a read/write iterator that points to the first element in the kvector. Iteration is done in o...
const RegularVector2dField2d< T, GridT > const_self
RegularVector2dField2d(const size_type height, const size_type width, const slip::Point2d< GridT > &init_point, const slip::Point2d< GridT > &grid_step, const slip::Vector2d< T > *val)
Constructs a RegularVector2dField2d initialized by an array val.
void plus(InputIterator1 __first1, InputIterator1 __last1, InputIterator2 __first2, OutputIterator __result)
Computes the addition of two ranges.
void multiplies(InputIterator1 __first1, InputIterator1 __last1, InputIterator2 __first2, OutputIterator __result)
Computes the pointwise product of two ranges.
self & operator=(const slip::Vector2d< T > &val)
Affects all the element of the RegularVector2dField2d by val.
void angle(Container2D &result)
Computes angle (radian) of each element with the cartesian axis and write it to a Container2D...
slip::stride_iterator< pointer > col_iterator
const std::string GRID_STEP_ERROR
vector2d_value_type * vector2d_pointer
const std::string GRID_INIT_POINT_ERROR
iterator2d upper_left()
Returns a read/write iterator2d that points to the first element of the GenericMultiComponent2d. It points to the upper left element of the GenericMultiComponent2d.
RegularVector2dField2d(const size_type height, const size_type width, const slip::Vector2d< T > *val)
Constructs a RegularVector2dField2d initialized by an array val.
const vector2d_value_type * const_vector2d_pointer
This is some iterator to iterate a 2d container into a slip::Box2d area defined by the indices of the...
const value_type * const_pointer
self & operator*=(const T &val)
const value_type & const_reference
RegularVector2dField2d< double, double > Regular2D3C_d
double alias
Numerical matrix class. This container statisfies the BidirectionnalContainer concepts of the STL...
void fill(const slip::Vector2d< T > &value)
Fills the container range [begin(),begin()+size()) with copies of value.
Provides some algorithms to computes arithmetical operations on ranges.
const slip::Point2d< GridT > & get_init_point() const
Read access to the init point of the grid.
std::ostream & operator<<(std::ostream &out, const Array< T > &a)
T & Vx1(const size_type i, const size_type j)
Subscript access to first element of the data contained in the RegularVector2dField2d.
void upper_left(Point< CoordType, 2 >)
Accessor/Mutator of the upper_left point (p1) of Box2d.
iterator end()
Returns a read/write iterator that points one past the last element in the GenericMultiComponent2d. Iteration is done in ordinary element order.
norm_type angle(const size_type i, const size_type j) const
Subscript access to a local angle contained in the RegularVector2dField2d. The result is a radian bet...
reverse_col_iterator col_rbegin(const size_type col)
Returns a read/write reverse iterator that points to the last element of the column column in the Gen...
RegularVector2dField2d< double, double > Regular2D3Cd
double alias
self & operator+=(const T &val)
Add val to each element of the RegularVector2dField2d.
slip::RegularVector2dField2d< char, double > RegularVector2dField2d_c
char alias
This is a Vector2d struct. It is a specialization of kvector. It implements some peculiar 2d operatio...
~RegularVector2dField2d()
Destructor of the RegularVector2dField2d.
slip::RegularVector2dField2d< long, double > RegularVector2dField2d_l
long alias
slip::RegularVector2dField2d< unsigned char, double > RegularVector2dField2d_uc
unsigned char alias
RegularVector2dField2d(const size_type height, const size_type width)
Constructs a RegularVector2dField2d.
void write_tecplot(const std::string &file_path_name, const std::string &title, const std::string &zone) const
Writes a RegularVector2dField2d to a tecplot file path name.
void derivative(const std::size_t component, const slip::SPATIAL_DIRECTION der_dir, const std::size_t der_order, const std::size_t sch_order, const slip::Box2d< int > box, Container2D &result) const
Computes finite differences derivatives of a RegularVector2dField2d.
void lambda2(const std::size_t sch_order, Container2D &result)
Computes finite differences lambda2 of a RegularVector2dField2d.
iterator end()
Returns a read/write iterator that points one past the last element in the Matrix. Iteration is done in ordinary element order.
vector2d_value_type & vector2d_reference
const GridT x1(const size_type i, const size_type j) const
Subscript access to the real x1 value of the indexed (i,j) point of the RegularVector2dField2d.
size_type width() const
Returns the number of columns (second dimension size) in the GenericMultiComponent2d.
const vector2d_value_type const_vector2d_reference
SPATIAL_DIRECTION
Choose between different spatial directions.
slip::RegularVector2dField2d< int, double > RegularVector2dField2d_i
int alias
Provides a class to manipulate Numerical Matrix.
std::reverse_iterator< iterator > reverse_iterator
static const std::size_t DIM
Provides some algorithms to apply C like functions to ranges.
Provides a class to modelize 2d points.
slip::RegularVector2dField2d< short, double > RegularVector2dField2d_s
short alias
Provides a class to iterate a 1d range according to a step.
size_type rows() const
Returns the number of rows (first dimension size) in the GenericMultiComponent2d. ...
norm_type norm(const size_type i, const size_type j) const
Subscript access to a local norm contained in the RegularVector2dField2d.
void derivative(const std::size_t component, const slip::SPATIAL_DIRECTION der_dir, const std::size_t der_order, const std::size_t sch_order, Container2D &result) const
Computes finite differences derivatives of a RegularVector2dField2d.
void derivative(SrcIter first, SrcIter last, const std::size_t der_ord, const std::size_t sch_ord, const std::size_t sch_shift, const Container2D &M, ResIter result)
Computes 1d finite differences derivatives of an iterator range.
slip::stride_iterator< const_pointer > const_col_iterator
void divergence(const std::size_t sch_order, Container2D &result) const
Computes finite differences divergence of a RegularVector2dField2d.
void finite_diff_kernels(const std::size_t der_ord, const std::size_t sch_ord, const std::size_t sch_shift, std::vector< KernelsIterator > &kernels_first)
Computes finite differences kernels for derivation based on Taylor series (sch_ord-sch_shift steps up...
slip::RegularVector2dField2d< unsigned int, double > RegularVector2dField2d_ui
unsigned int alias
std::reverse_iterator< const_col_iterator > const_reverse_col_iterator
iterator2d bottom_right()
Returns a read/write iterator2d that points to the past the end element of the GenericMultiComponent2...
void norm(Container2D &result)
Computes Eucliean norm of each element in the field and write it to a Container2D.
row_iterator row_begin(const size_type row)
Returns a read/write iterator that points to the first element of the row row in the Matrix...
Color< T > operator*(const Color< T > &V1, const Color< T > &V2)
Provides a class to manipulate iterator2d within a slip::Range. It is used to iterate throw 2d contai...
const GridT x2(const size_type i, const size_type j) const
Subscript access to the real x2 value of the indexed (i,j) point of the RegularVector2dField2d.
Color< T > operator/(const Color< T > &V1, const Color< T > &V2)
const GridT y(const size_type i, const size_type j) const
Subscript access to the real x2 value of the indexed (i,j) point of the RegularVector2dField2d.
slip::RegularVector2dField2d< double, double > RegularVector2dField2d_d
double alias
Color< T > operator-(const Color< T > &V1, const Color< T > &V2)
slip::RegularVector2dField2d< float, double > RegularVector2dField2d_f
float alias
std::reverse_iterator< const_iterator > const_reverse_row_iterator