75 #ifndef SLIP_REGULARVECTOR3DFIELD3D_HPP 
   76 #define SLIP_REGULARVECTOR3DFIELD3D_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 iterator3d_box;
 
  116 class iterator3d_range;
 
  119 class const_iterator3d_box;
 
  122 class const_iterator3d_range;
 
  133   template <
typename T, 
typename Gr
idT>
 
  136   template <
typename T, 
typename Gr
idT>
 
  137   std::ostream& operator<<(std::ostream & out, const slip::RegularVector3dField3d<T,GridT>& a);
 
  160   template <
typename T, 
typename Gr
idT = 
double>
 
  209   static const std::size_t 
DIM = 3;
 
  220     base(),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  232     base(slices,rows,cols),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  248     base(slices,rows,cols),init_point_(init_point),grid_step_(grid_step)
 
  263     base(slices,rows,cols,val),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  281     base(slices,rows,cols,val),init_point_(init_point),grid_step_(grid_step)
 
  295     base(slices,rows,cols,val),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  314     base(slices,rows,cols,val),init_point_(init_point),grid_step_(grid_step)
 
  328     base(slices,rows,cols,val),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  347     base(slices,rows,cols,val),init_point_(init_point),grid_step_(grid_step)
 
  362   template<
typename InputIterator>
 
  368     base(slices,rows,cols,first,last),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  384   template<
typename InputIterator>
 
  392     base(slices,rows,cols,first,last),init_point_(init_point),grid_step_(grid_step)
 
  412   template<
typename InputIterator>
 
  416                                        InputIterator first1,
 
  418                                        InputIterator first2,
 
  419                                        InputIterator first3):
 
  420     base(slices,rows,cols),init_point_(slip::
Point3d<GridT>()),grid_step_(slip::
Point3d<GridT>(GridT(1),GridT(1),GridT(1)))
 
  423     std::vector<InputIterator> first_iterators_list(3);
 
  424     first_iterators_list[0] = first1;
 
  425     first_iterators_list[1] = first2;
 
  426     first_iterators_list[2] = first3;
 
  427     this->
fill(first_iterators_list,last1);
 
  449   template<
typename InputIterator>
 
  455                                                  InputIterator first1,
 
  457                                                  InputIterator first2,
 
  458                                                  InputIterator first3):
 
  459     base(slices,rows,cols),init_point_(init_point),grid_step_(grid_step)
 
  462     std::vector<InputIterator> first_iterators_list(3);
 
  463     first_iterators_list[0] = first1;
 
  464     first_iterators_list[1] = first2;
 
  465     first_iterators_list[2] = first3;
 
  466     this->
fill(first_iterators_list,last1);
 
  474     base(rhs),init_point_(rhs.init_point_),grid_step_(rhs.grid_step_)
 
  491   std::string 
name() 
const;
 
  505   friend std::ostream& operator<< <>(std::ostream & out, 
const self& a);
 
  526                                      const std::string& title,
 
  527                                      const std::string& zone) 
const;
 
  537                                                  const std::string& title,
 
  538                                                  const std::string& zone) 
const;
 
  564                                                 const int zone_loaded=1);
 
 1071   template<
typename Container3D>
 
 1074                                   const std::size_t der_order, 
 
 1075                                   const std::size_t sch_order,
 
 1076                                   Container3D& result)
 const 
 1078     assert(component < 3);
 
 1079     assert(sch_order >= der_order);
 
 1083     assert(sch_order / 2 <= sch_order);
 
 1084     const std::size_t sch_shift = sch_order / 2;
 
 1087     std::vector<slip::Matrix<double>::iterator> kernels_iterators(sch_order + 1);   
 
 1088     for(std::size_t i = 0; i < (sch_order + 1); ++i)
 
 1090                 kernels_iterators[i] = kernels.
row_begin(i);
 
 1110                                                                  result.row_begin(k,i));
 
 1131                                                                  result.col_rbegin(k,j));
 
 1152                                                                  result.slice_rbegin(i,j));
 
 1198   template<
typename Container3D>
 
 1201       const std::size_t der_order, 
 
 1202       const std::size_t sch_order,
 
 1204       Container3D& result)
 const 
 1206     assert(component < 3);
 
 1207     assert(sch_order >= der_order);
 
 1211     assert(sch_order / 2 <= sch_order);
 
 1212     const std::size_t sch_shift = sch_order / 2;
 
 1215     std::vector<slip::Matrix<double>::iterator> kernels_iterators(sch_order + 1);   
 
 1216     for(std::size_t i = 0; i < (sch_order + 1); ++i)
 
 1218                 kernels_iterators[i] = kernels.
row_begin(i);
 
 1236                                                                  this->
row_end(component, k,i, range_row), 
 
 1241                                                                  result.row_begin(k,i, range_row));
 
 1256                                                                  this->
col_rend(component, k,j, range_col), 
 
 1261                                                                  result.col_rbegin(k,j, range_col));
 
 1276                                                                  this->
slice_rend(component, i,j, range_slice),
 
 1281                                                                  result.slice_rbegin(i,j, range_slice));
 
 1305   template<
typename Container3D>
 
 1307                                   Container3D& result)
 const 
 1309     assert(sch_order >= 1);
 
 1310     assert(sch_order / 2 <= sch_order);
 
 1311     const std::size_t der_order = 1;
 
 1315     std::size_t component = 0;
 
 1352   template<
typename Container3D>
 
 1354                                   Container3D& result)
 const 
 1356     assert(sch_order >= 1);
 
 1357     assert(sch_order / 2 <= sch_order);
 
 1358     const std::size_t sch_shift = sch_order / 2;
 
 1363     const std::size_t der_order = 1;
 
 1366     std::vector<slip::Matrix<double>::iterator> kernelsx_iterators(sch_order + 1);   
 
 1367     for(std::size_t i = 0; i < (sch_order + 1); ++i)
 
 1369                 kernelsx_iterators[i] = kernelsx.
row_begin(i);
 
 1373                                                       kernelsx_iterators);
 
 1376     std::vector<slip::Matrix<double>::iterator> kernelsy_iterators(sch_order + 1);   
 
 1377     for(std::size_t i = 0; i < (sch_order + 1); ++i)
 
 1379                 kernelsy_iterators[i] = kernelsy.
row_begin(i);
 
 1383                                                       kernelsy_iterators);
 
 1386     std::vector<slip::Matrix<double>::iterator> kernelsz_iterators(sch_order + 1);   
 
 1387     for(std::size_t i = 0; i < (sch_order + 1); ++i)
 
 1389                 kernelsz_iterators[i] = kernelsz.
row_begin(i);
 
 1393                                                       kernelsz_iterators);
 
 1395     std::size_t vort_component = 2;
 
 1398     std::size_t component = 1;
 
 1427                                                      result.col_rbegin(vort_component,k,j));
 
 1462                                                      result.row_begin(vort_component,k,i));
 
 1497                                                      result.col_rbegin(vort_component,k,j));
 
 1501     slip::minus(result.begin(vort_component),result.end(vort_component),Mtmp.
begin(),result.
begin(vort_component));
 
 1527   template<
typename Container3D, 
typename Container3D1, 
typename Container3D2, 
typename Container3D3>
 
 1529                       Container3D& Lambda, Container3D1& LambdaV1, Container3D2& LambdaV2, Container3D3& LambdaV3)
 const 
 1535     assert(sch_order >= 1);
 
 1536     const std::size_t der_order = 1;
 
 1543     std::size_t component = 0;
 
 1599     Lambda.resize(slices,rows,cols);
 
 1600     LambdaV1.resize(slices,rows,cols);
 
 1601     LambdaV2.resize(slices,rows,cols);
 
 1602     LambdaV3.resize(slices,rows,cols);
 
 1611                                 S(0,0)=D11[k][i][j];
 
 1612                                 S(1,1)=D22[k][i][j];
 
 1613                                 S(2,2)=D33[k][i][j];
 
 1614                                 S(0,1)=0.5*(D12[k][i][j]+D21[k][i][j]);
 
 1615                                 S(0,2)=0.5*(D13[k][i][j]+D31[k][i][j]);
 
 1617                                 S(1,2)=0.5*(D23[k][i][j]+D32[k][i][j]);
 
 1620                                 O(0,1)=0.5*(D12[k][i][j]-D21[k][i][j]);
 
 1621                                 O(0,2)=0.5*(D13[k][i][j]-D31[k][i][j]);
 
 1623                                 O(1,2)=0.5*(D23[k][i][j]-D32[k][i][j]);
 
 1647                                 for(std::size_t kc=0; kc<2; ++kc)
 
 1649                                     Lambda[k][i][j][kc]=lambda[kc];
 
 1651                                     LambdaV1[k][i][j][kc]=eigenvectors[kc][0];
 
 1652                                     LambdaV2[k][i][j][kc]=eigenvectors[kc][1];
 
 1653                                     LambdaV3[k][i][j][kc]=eigenvectors[kc][2];
 
 1681   template<
typename Container3D>
 
 1683                                   Container3D& Lambda)
 const 
 1689     assert(sch_order >= 1);
 
 1690     const std::size_t der_order = 1;
 
 1697     std::size_t component = 0;
 
 1750     Lambda.resize(slices,rows,cols);
 
 1759                                 S(0,0)=D11[k][i][j];
 
 1760                                 S(1,1)=D22[k][i][j];
 
 1761                                 S(2,2)=D33[k][i][j];
 
 1762                                 S(0,1)=0.5*(D12[k][i][j]+D21[k][i][j]);
 
 1763                                 S(0,2)=0.5*(D13[k][i][j]+D31[k][i][j]);
 
 1765                                 S(1,2)=0.5*(D23[k][i][j]+D32[k][i][j]);
 
 1768                                 O(0,1)=0.5*(D12[k][i][j]-D21[k][i][j]);
 
 1769                                 O(0,2)=0.5*(D13[k][i][j]-D31[k][i][j]);
 
 1771                                 O(1,2)=0.5*(D23[k][i][j]-D32[k][i][j]);
 
 1788                                 for(std::size_t kc = 0; kc < 2; ++kc)
 
 1790                                     Lambda[k][i][j][kc]=lambda[kc];
 
 1806   template<
typename Container3D>
 
 1807   void norm(Container3D& result)
 const 
 1825  template<
class Archive>
 
 1826     void save(Archive & ar, 
const unsigned int version)
 const 
 1828       ar & init_point_ & grid_step_;
 
 1829       ar & boost::serialization::base_object<slip::GenericMultiComponent3d<slip::Vector3d<T> > >(*this);
 
 1831    template<
class Archive>
 
 1832     void load(Archive & ar, 
const unsigned int version)
 
 1834       ar & init_point_ & grid_step_;
 
 1835       ar & boost::serialization::base_object<slip::GenericMultiComponent3d<slip::Vector3d<T> > >(*this);
 
 1837   BOOST_SERIALIZATION_SPLIT_MEMBER()
 
 1884 template<
typename T, 
typename Gr
idT>
 
 1885 RegularVector3dField3d<T,GridT> 
operator+(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1894   template<
typename T, 
typename Gr
idT>
 
 1895   RegularVector3dField3d<T,GridT> 
operator+(
const T& val, 
 
 1896                                                                     const RegularVector3dField3d<T,GridT>& M1);
 
 1905 template<
typename T, 
typename Gr
idT>
 
 1906 RegularVector3dField3d<T,GridT> 
operator-(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1915   template<
typename T, 
typename Gr
idT>
 
 1916   RegularVector3dField3d<T,GridT> 
operator-(
const T& val, 
 
 1917                                                                     const RegularVector3dField3d<T,GridT>& M1);
 
 1927   template<
typename T, 
typename Gr
idT>
 
 1928   RegularVector3dField3d<T,GridT> 
operator*(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1937   template<
typename T, 
typename Gr
idT>
 
 1938   RegularVector3dField3d<T,GridT> 
operator*(
const T& val, 
 
 1939                                                                     const RegularVector3dField3d<T,GridT>& M1);
 
 1949   template<
typename T, 
typename Gr
idT>
 
 1950   RegularVector3dField3d<T,GridT> 
operator/(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1962 template<
typename T, 
typename Gr
idT>
 
 1963 RegularVector3dField3d<T,GridT> 
operator+(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1964                                                                   const RegularVector3dField3d<T,GridT>& M2);
 
 1972 template<
typename T, 
typename Gr
idT>
 
 1973 RegularVector3dField3d<T,GridT> 
operator+(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1982   template<
typename T, 
typename Gr
idT>
 
 1984                                                                     const RegularVector3dField3d<T,GridT>& M1);
 
 1996 template<
typename T, 
typename Gr
idT>
 
 1997 RegularVector3dField3d<T,GridT> 
operator-(
const RegularVector3dField3d<T,GridT>& M1, 
 
 1998                                                                   const RegularVector3dField3d<T,GridT>& M2);
 
 2007 template<
typename T, 
typename Gr
idT>
 
 2008 RegularVector3dField3d<T,GridT> 
operator-(
const RegularVector3dField3d<T,GridT>& M1, 
 
 2017   template<
typename T, 
typename Gr
idT>
 
 2019                                                                     const RegularVector3dField3d<T,GridT>& M1);
 
 2031   template<
typename T, 
typename Gr
idT>
 
 2032   RegularVector3dField3d<T,GridT> 
operator*(
const RegularVector3dField3d<T,GridT>& M1, 
 
 2033                                       const RegularVector3dField3d<T,GridT>& M2);
 
 2042 template<
typename T, 
typename Gr
idT>
 
 2043 RegularVector3dField3d<T,GridT> 
operator*(
const RegularVector3dField3d<T,GridT>& M1, 
 
 2052   template<
typename T, 
typename Gr
idT>
 
 2054                                                                     const RegularVector3dField3d<T,GridT>& M1);
 
 2066   template<
typename T, 
typename Gr
idT>
 
 2067   RegularVector3dField3d<T,GridT> 
operator/(
const RegularVector3dField3d<T,GridT>& M1, 
 
 2068                                       const RegularVector3dField3d<T,GridT>& M2);
 
 2076 template<
typename T, 
typename Gr
idT>
 
 2077 RegularVector3dField3d<T,GridT> 
operator/(
const RegularVector3dField3d<T,GridT>& M1, 
 
 2100   template<
typename T, 
typename Gr
idT>
 
 2104     std::fill_n(this->begin(),this->size(),val);
 
 2109  template<
typename T, 
typename Gr
idT>
 
 2113     std::fill_n(this->begin(),this->size(),val);
 
 2118   template<
typename T, 
typename Gr
idT>
 
 2124     return (*
this)[k][i][j][0];
 
 2127   template<
typename T, 
typename Gr
idT>
 
 2133     return (*
this)[k][i][j][0];
 
 2136    template<
typename T, 
typename Gr
idT>
 
 2142     return this->Vx1(k,i,j);
 
 2145   template<
typename T, 
typename Gr
idT>
 
 2151     return this->Vx1(k,i,j);
 
 2155    template<
typename T, 
typename Gr
idT>
 
 2161     return (*
this)[k][i][j][1];
 
 2165   template<
typename T, 
typename Gr
idT>
 
 2171     return (*
this)[k][i][j][1];
 
 2173  template<
typename T, 
typename Gr
idT>
 
 2179     return this->Vx2(k,i,j);
 
 2183   template<
typename T, 
typename Gr
idT>
 
 2189     return this->Vx2(k,i,j);
 
 2193   template<
typename T, 
typename Gr
idT>
 
 2199     return (*
this)[k][i][j][2];
 
 2202    template<
typename T, 
typename Gr
idT>
 
 2208     return (*
this)[k][i][j][2];
 
 2211    template<
typename T, 
typename Gr
idT>
 
 2217     return this->Vx3(k,i,j);
 
 2220    template<
typename T, 
typename Gr
idT>
 
 2226     return this->Vx3(k,i,j);
 
 2230   template<
typename T, 
typename Gr
idT>
 
 2237     return (*
this)[k][i][j].Euclidean_norm();
 
 2240    template<
typename T, 
typename Gr
idT>
 
 2246     return this->init_point_[0] + GridT(j) * this->grid_step_[0];
 
 2249     template<
typename T, 
typename Gr
idT>
 
 2255     return this->init_point_[1] + GridT(this->rows() - 1 - i) * this->grid_step_[1];
 
 2258   template<
typename T, 
typename Gr
idT>
 
 2264     return this->init_point_[2] + GridT(this->slices() - 1 - k) * this->grid_step_[2];
 
 2267  template<
typename T, 
typename Gr
idT>
 
 2273     return this->x1(k,i,j);
 
 2276     template<
typename T, 
typename Gr
idT>
 
 2282     return this->x2(k,i,j);
 
 2285   template<
typename T, 
typename Gr
idT>
 
 2291     return this->x3(k,i,j);
 
 2294  template<
typename T, 
typename Gr
idT>
 
 2298     return this->init_point_;
 
 2301   template<
typename T, 
typename Gr
idT>
 
 2305     this->init_point_ = init_point;
 
 2308   template<
typename T, 
typename Gr
idT>
 
 2312     return this->grid_step_;
 
 2315   template<
typename T, 
typename Gr
idT>
 
 2319     this->grid_step_ = grid_step;
 
 2322   template<
typename T, 
typename Gr
idT>
 
 2330   template<
typename T, 
typename Gr
idT>
 
 2338   template<
typename T, 
typename Gr
idT>
 
 2346   template<
typename T, 
typename Gr
idT>
 
 2356  template<
typename T, 
typename Gr
idT>
 
 2364   template<
typename T, 
typename Gr
idT>
 
 2372   template<
typename T, 
typename Gr
idT>
 
 2380   template<
typename T, 
typename Gr
idT>
 
 2390   template<
typename T, 
typename Gr
idT>
 
 2395     std::transform(this->begin(),this->end(),tmp.
begin(),std::negate<slip::Vector3d<T> >());
 
 2399   template<
typename T, 
typename Gr
idT>
 
 2403     assert(this->dim1() == rhs.
dim1());
 
 2404     assert(this->dim2() == rhs.
dim2()); 
 
 2405     assert(this->dim3() == rhs.
dim3()); 
 
 2414     std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::plus<typename RegularVector3dField3d::value_type>());
 
 2418    template<
typename T, 
typename Gr
idT>
 
 2422     assert(this->dim1() == rhs.
dim1());
 
 2423     assert(this->dim2() == rhs.
dim2());
 
 2424     assert(this->dim3() == rhs.
dim3()); 
 
 2433     std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::minus<typename RegularVector3dField3d::value_type>());
 
 2437   template<
typename T, 
typename Gr
idT>
 
 2441     assert(this->dim1() == rhs.
dim1());
 
 2442     assert(this->dim2() == rhs.
dim2());
 
 2443     assert(this->dim3() == rhs.
dim3()); 
 
 2452     std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::multiplies<typename RegularVector3dField3d::value_type>());
 
 2456   template<
typename T, 
typename Gr
idT>
 
 2460     assert(this->dim1() == rhs.
dim1());
 
 2461     assert(this->dim2() == rhs.
dim2());
 
 2462     assert(this->dim3() == rhs.
dim3()); 
 
 2471     std::transform(this->begin(),this->end(),rhs.
begin(),this->begin(),std::divides<typename RegularVector3dField3d::value_type>());
 
 2476   template <
typename T, 
typename Gr
idT>
 
 2482     out<<
"init point: "<<a.init_point_<<std::endl;
 
 2483     out<<
"grid step: "<<a.grid_step_<<std::endl;
 
 2484     out<<
"data: "<<std::endl;
 
 2486     const size_type slices  = a.
slices();
 
 2487     const size_type rows  = a.
rows();
 
 2488     const size_type cols = a.
cols();
 
 2489     for(size_type k = 0; k < slices; ++k)
 
 2491                 for(size_type i = 0; i < rows; ++i)
 
 2493                     for(size_type j = 0; j < cols; ++j)
 
 2495                                 out<<a[k][i][j]<<
" ";
 
 2504   template<
typename T, 
typename Gr
idT>
 
 2517   template<
typename T, 
typename Gr
idT>
 
 2520                                                                                       const std::string& title,
 
 2521                                                                                       const std::string& zone)
 const 
 2523     slip::write_tecplot_vect3d<RegularVector3dField3d<T,GridT> >(*
this,
 
 2531   template<
typename T, 
typename Gr
idT>
 
 2534                                                                                                                   const std::string& title,
 
 2535                                                                                                                   const std::string& zone)
 const 
 2551   template<
typename T, 
typename Gr
idT>
 
 2555     slip::read_tecplot_vect3d<RegularVector3dField3d<T,GridT> >(file_path_name,
 
 2561    template<
typename T, 
typename Gr
idT>
 
 2564                                                                                                                   const int zone_loaded)
 
 2566     std::string _useless_string;
 
 2567     std::vector<std::string> _useless_varnames;
 
 2576   template<
typename T, 
typename Gr
idT>
 
 2586   template<
typename T, 
typename Gr
idT>
 
 2594   template<
typename T, 
typename Gr
idT>
 
 2604   template<
typename T, 
typename Gr
idT>
 
 2613   template<
typename T, 
typename Gr
idT>
 
 2623   template<
typename T, 
typename Gr
idT>
 
 2632   template<
typename T, 
typename Gr
idT>
 
 2642   template<
typename T, 
typename Gr
idT>
 
 2654   template<
typename T, 
typename Gr
idT>
 
 2664   template<
typename T, 
typename Gr
idT>
 
 2674  template<
typename T, 
typename Gr
idT>
 
 2686   template<
typename T, 
typename Gr
idT>
 
 2696   template<
typename T, 
typename Gr
idT>
 
 2705   template<
typename T, 
typename Gr
idT>
 
 2717   template<
typename T, 
typename Gr
idT>
 
 2727   template<
typename T, 
typename Gr
idT>
 
 2736  template<
typename T, 
typename Gr
idT>
 
 2748   template<
typename T, 
typename Gr
idT>
 
 2763 #endif //SLIP_REGULARVECTOR3DFIELD3D_HPP 
void minus(InputIterator1 __first1, InputIterator1 __last1, InputIterator2 __first2, OutputIterator __result)
Computes the difference of two ranges. 
 
slip::RegularVector3dField3d< double, double > RegularVector3dField3d_d
double alias 
 
This is some iterator to iterate a 3d container into a plane area defined by the subscripts of the 3d...
 
void write_tecplot(const std::string &file_path_name, const std::string &title, const std::string &zone) const 
Writes a RegularVector3dField3d to a tecplot file path name. 
 
RegularVector3dField3d< double, double > Regular3D3Cd
double alias 
 
void read_tecplot(const std::string &file_path_name)
Reads a RegularVector3dField3d from a tecplot file path name. 
 
CoordType width() const 
compute the width of the Box3d. 
 
const GridT x(const size_type k, const size_type i, const size_type j) const 
Subscript access to the real x1 value of the indexed (k,i,j) point of the RegularVector3dField3d. 
 
slip::RegularVector3dField3d< float, float > RegularVector3dField3d_f
float alias 
 
ptrdiff_t difference_type
 
RegularVector3dField3d< float, double > Regular3D3C_f
float alias 
 
self & operator+=(const T &val)
Add val to each element of the RegularVector3dField3d. 
 
T & Vx2(const size_type k, const size_type i, const size_type j)
Subscript access to second element of the data contained in the RegularVector3dField3d. 
 
size_type dim3() const
Returns the number of columns (third dimension size) in the GenericMultiComponent3d. 
 
const GridT y(const size_type k, const size_type i, const size_type j) const 
Subscript access to the real x2 value of the indexed (k,i,j) point of the RegularVector3dField3d. 
 
size_type rows() const
Returns the number of rows (first dimension size) in the GenericMultiComponent3d. ...
 
This is a Vector3d struct. It is a specialization of kvector. It implements some specific 3d operatio...
 
self & operator-=(const T &val)
 
norm_type Euclidean_norm() const
Returns the Euclidean norm  of the elements of the kvector. 
 
slip::kstride_iterator< const_vector3d_pointer, 3 > const_vector3d_iterator
 
iterator begin()
Returns a read/write iterator that points to the first element in the GenericMultiComponent3d. Iteration is done in ordinary element order. 
 
Color< T > operator+(const Color< T > &V1, const Color< T > &V2)
 
row_iterator row_begin(const size_type slice, const size_type row)
Returns a read/write iterator that points to the first element of the row row of the slice slice in t...
 
std::reverse_iterator< const_iterator > const_reverse_iterator
 
size_type dim2() const
Returns the number of rows (second dimension size) in the GenericMultiComponent3d. 
 
void divides(InputIterator1 __first1, InputIterator1 __last1, InputIterator2 __first2, OutputIterator __result)
Computes the pointwise division of two ranges. 
 
slip::RegularVector3dField3d< unsigned short, double > RegularVector3dField3d_us
unsigned long alias 
 
slip::RegularVector3dField3d< unsigned long, double > RegularVector3dField3d_ul
unsigned long alias 
 
static const std::size_t DIM
 
vector3d_value_type & vector3d_reference
 
const_iterator begin() const 
Returns a read-only (constant) iterator that points to the first element in the Matrix3d. Iteration is done in ordinary element order. 
 
slip::RegularVector3dField3d< unsigned char, double > RegularVector3dField3d_uc
unsigned char alias 
 
Provides some derivative algorithms and derivative functors. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Point3d< GridT > &init_point, const slip::Point3d< GridT > &grid_step, InputIterator first1, InputIterator last1, InputIterator first2, InputIterator first3)
Contructs a RegularVector3dField3d from a 3 ranges. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Point3d< GridT > &init_point, const slip::Point3d< GridT > &grid_step, InputIterator first, InputIterator last)
Contructs a RegularVector3dField3d from a range. 
 
size_type slices() const
Returns the number of slices (first dimension size) in the GenericMultiComponent3d. 
 
Provides a class to iterate a 1d range according to a constant step. 
 
const GridT x2(const size_type k, const size_type i, const size_type j) const 
Subscript access to the real x2 value of the indexed (k,i,j) point of the RegularVector3dField3d. 
 
reverse_slice_iterator slice_rbegin(const size_type row, const size_type col)
Returns a read/write iterator that points to the last element of the line (row,col) threw the slices ...
 
std::reverse_iterator< col_iterator > reverse_col_iterator
 
void set_grid_step(const slip::Point3d< GridT > &grid_step)
Write access to the grid step of the grid. 
 
Provides a class to manipulate iterator3d within a slip::Range. It is used to iterate throw 3d contai...
 
const_pointer const_row_iterator
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols)
Constructs a RegularVector3dField3d. 
 
std::reverse_iterator< const_col_iterator > const_reverse_col_iterator
 
reverse_col_iterator col_rbegin(const size_type slice, const size_type col)
Returns a read/write reverse iterator that points to the last element of the column column of the sli...
 
void front_upper_left(Point< CoordType, 3 >)
Accessor/Mutator of the front_upper_left point (p1) of Box3d. 
 
row_iterator row_begin(const size_type slice, const size_type row)
Returns a read/write iterator that points to the first element of the row row of the slice slice in t...
 
void hermitian_eigen(const Matrix1 &A, Vector1 &EigenValues, Matrix2 &EigenVectors)
Eigen Values Computation of an hermitian semi-definite positive matrix. 
 
const RegularVector3dField3d< T, GridT > const_self
 
const slip::Point3d< GridT > & get_grid_step() const 
Read access to the init point of the grid. 
 
row_iterator row_end(const size_type slice, const size_type row)
Returns a read/write iterator that points to the past-the-end element of the row row of the slice sli...
 
iterator begin()
Returns a read/write iterator that points to the first element in the kvector. Iteration is done in o...
 
void norm(Container3D &result) const 
Computes Eucliean norm of each element in the field and write it to a Container3D. 
 
Provides some tecplot binary input/ouput algorithms. 
 
void lambda(const std::size_t sch_order, Container3D &Lambda, Container3D1 &LambdaV1, Container3D2 &LambdaV2, Container3D3 &LambdaV3) const 
Computes finite differences lambda of a RegularVector3dField3d. 
 
const slip::Point3d< GridT > & get_init_point() const 
Read access to the init point of the grid. 
 
void write_tecplot_bin(const std::string &file_path_name, const std::string &title, const std::string &zone) const 
Writes a RegularVector3dField3d to a tecplot binary file. 
 
void read_tecplot_bin(const std::string &file_path_name, const int zone_loaded=1)
Reads a RegularVector3dField3d from a binary tecplot file. 
 
slip::GenericMultiComponent3d< slip::Vector3d< T > >::const_iterator2d const_iterator3d
 
This is a GenericMultiComponent3d class. This container statisfies the BidirectionnalContainer concep...
 
Numerical matrix3d class. This container statisfies the RandomAccessContainer concepts of the STL exc...
 
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. 
 
T & Vx3(const size_type k, const size_type i, const size_type j)
Subscript access to third element of the data contained in the RegularVector3dField3d. 
 
Provides some algorithms to computes eigenvalues and eigenvectors. 
 
slip::RegularVector3dField3d< short, double > RegularVector3dField3d_s
short alias 
 
Provides a class to manipulate 3d Vector. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Point3d< GridT > &init_point, const slip::Point3d< GridT > &grid_step, const T *val)
Constructs a RegularVector3dField3d initialized by an array val. 
 
reverse_col_iterator col_rend(const size_type slice, const size_type col)
Returns a read/write reverse iterator that points to the first element of the column column of the sl...
 
RegularVector3dField3d< double, double > Regular3D3C_d
double alias 
 
const value_type & const_reference
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, InputIterator first1, InputIterator last1, InputIterator first2, InputIterator first3)
Contructs a RegularVector3dField3d from a 3 ranges. 
 
Provides a class to manipulate iterator2d within a slip::Box3d. It is used to iterate throw 3d contai...
 
RegularVector3dField3d< float, double > Regular3D3Cf
float alias 
 
Numerical Vector class. This container statisfies the RandomAccessContainer concepts of the Standard ...
 
T & u(const size_type k, const size_type i, const size_type j)
Subscript access to first element of the data contained in the RegularVector3dField3d. 
 
const GridT z(const size_type k, const size_type i, const size_type j) const 
Subscript access to the real x3 value of the indexed (k,i,j) point of the RegularVector3dField3d. 
 
slip::RegularVector3dField3d< int, double > RegularVector3dField3d_i
int alias 
 
void divergence(const std::size_t sch_order, Container3D &result) const 
Computes finite differences divergence of a RegularVector3dField3d. 
 
const std::string GRID_STEP_ERROR
 
self & operator*=(const T &val)
 
void plt_to_RegularVector3dField3d(const std::string &file_path_name, RegularVector3dField3d ®, std::string &title, std::string &zonename, std::vector< std::string > &varnames, const int zone_loaded=1)
Read a slip::RegularVector3dField3d from a binary tecplot file. 
 
const GridT x1(const size_type k, const size_type i, const size_type j) const 
Subscript access to the real x1 value of the indexed (k,i,j) point of the RegularVector3dField3d. 
 
const_pointer const_iterator
 
const std::string GRID_INIT_POINT_ERROR
 
vector3d_value_type * vector3d_pointer
 
void RegularVector3dField3d_to_plt(const std::string &file_path_name, RegularVector3dField3d ®, std::string title, std::string zone, const double SolTime, std::vector< std::string > varnames=std::vector< std::string >(), const int FileType=0)
Write a slip::RegularVector3dField3d to a binary tecplot file. 
 
CoordType depth() const 
compute the depth of the Box3d. 
 
self & operator/=(const T &val)
 
T & Vx1(const size_type k, const size_type i, const size_type j)
Subscript access to first element of the data contained in the RegularVector3dField3d. 
 
void matrix_matrix_multiplies(MatrixIterator1 M1_up, MatrixIterator1 M1_bot, MatrixIterator2 M2_up, MatrixIterator2 M2_bot, MatrixIterator3 R_up, MatrixIterator3 R_bot)
Computes the matrix matrix multiplication of 2 2d ranges. 
 
slip::stride_iterator< pointer > col_iterator
 
Numerical matrix class. This container statisfies the BidirectionnalContainer concepts of the STL...
 
GenericMultiComponent3d< slip::Vector3d< T > > base
 
Provides some algorithms to computes arithmetical operations on ranges. 
 
slip::RegularVector3dField3d< unsigned int, double > RegularVector3dField3d_ui
unsigned int alias 
 
slip::Vector3d< T > value_type
 
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, Container3D &result) const 
Computes finite differences derivatives of a RegularVector3dField3d. 
 
Provides a class to manipulate Matrix3d. 
 
std::ostream & operator<<(std::ostream &out, const Array< T > &a)
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const T *val)
Constructs a RegularVector3dField3d initialized by an array val. 
 
void fill(const slip::Vector3d< T > &value)
Fills the container range [begin(),begin()+size()) with copies of value. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, InputIterator first, InputIterator last)
Contructs a RegularVector3dField3d from a range. 
 
self & operator=(const slip::Vector3d< T > &val)
Affects all the element of the RegularVector3dField3d by val. 
 
void back_bottom_right(Point< CoordType, 3 >)
Accessor/Mutator of the back_bottom_right point (p2) of Box3d. 
 
reverse_slice_iterator slice_rend(const size_type row, const size_type col)
Returns a read/write iterator that points to the one before the first element of the line (row...
 
slip::stride_iterator< const_pointer > const_col_iterator
 
const vector3d_value_type const_vector3d_reference
 
void set_init_point(const slip::Point3d< GridT > &init_point)
Write access to the init point of the grid. 
 
iterator end()
Returns a read/write iterator that points one past the last element in the GenericMultiComponent3d. Iteration is done in ordinary element order. 
 
norm_type norm(const size_type k, const size_type i, const size_type j) const 
Subscript access to a local norm contained in the RegularVector3dField3d. 
 
SPATIAL_DIRECTION
Choose between different spatial directions. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Vector3d< T > *val)
Constructs a RegularVector3dField3d initialized by an array val. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Vector3d< T > &val)
Constructs a RegularVector3dField3d initialized by the scalar value val. 
 
This is a Regular Vector3d Field. This container statisfies the BidirectionnalContainer concepts of t...
 
Provides some algorithms to apply C like functions to ranges. 
 
void lambda(const std::size_t sch_order, Container3D &Lambda) const 
Computes finite differences lambda of a RegularVector3dField3d. 
 
const GridT x3(const size_type k, const size_type i, const size_type j) const 
Subscript access to the real x3 value of the indexed (k,i,j) point of the RegularVector3dField3d. 
 
std::reverse_iterator< const_iterator > const_reverse_row_iterator
 
void vorticity(const std::size_t sch_order, Container3D &result) const 
Computes finite differences vorticity of a RegularVector3dField3d. 
 
Provides a class to iterate a 1d range according to a step. 
 
std::string name() const 
Returns the name of the class. 
 
slip::GenericMultiComponent3d< slip::Vector3d< T > >::iterator3d iterator3d
 
const vector3d_value_type * const_vector3d_pointer
 
T & v(const size_type k, const size_type i, const size_type j)
Subscript access to second element of the data contained in the RegularVector3dField3d. 
 
T & w(const size_type k, const size_type i, const size_type j)
Subscript access to third element of the data contained in the RegularVector3dField3d. 
 
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. 
 
~RegularVector3dField3d()
Destructor of the RegularVector3dField3d. 
 
reverse_slice_iterator slice_rbegin(const size_type row, const size_type col)
Returns a read/write iterator that points to the last element of the line (row,col) threw the slices ...
 
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::kstride_iterator< vector3d_pointer, 3 > vector3d_iterator
 
const value_type * const_pointer
 
slip::RegularVector3dField3d< long, double > RegularVector3dField3d_l
long alias 
 
std::reverse_iterator< iterator > reverse_row_iterator
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Point3d< GridT > &init_point, const slip::Point3d< GridT > &grid_step, const slip::Vector3d< T > &val)
Constructs a RegularVector3dField3d initialized by the scalar value val. 
 
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...
 
friend class boost::serialization::access
 
RegularVector3dField3d()
Constructs a RegularVector3dField3d. 
 
Color< T > operator*(const Color< T > &V1, const Color< T > &V2)
 
iterator end()
Returns a read/write iterator that points one past the last element in the Matrix3d. Iteration is done in ordinary element order. 
 
CoordType height() const 
compute the height of the Box3d. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Point3d< GridT > &init_point, const slip::Point3d< GridT > &grid_step)
Constructs a RegularVector3dField3d. 
 
std::reverse_iterator< iterator > reverse_iterator
 
Color< T > operator/(const Color< T > &V1, const Color< T > &V2)
 
size_type cols() const
Returns the number of columns (third dimension size) in the GenericMultiComponent3d. 
 
RegularVector3dField3d(const self &rhs)
Constructs a copy of the RegularVector3dField3d rhs. 
 
This is a point3d class, a specialized version of Point<CoordType,DIM> with DIM = 3...
 
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::Box3d< int > box, Container3D &result) const 
Computes finite differences derivatives of a RegularVector3dField3d in a box. 
 
slip::RegularVector3dField3d< char, double > RegularVector3dField3d_c
char alias 
 
Color< T > operator-(const Color< T > &V1, const Color< T > &V2)
 
size_type dim1() const
Returns the number of slices (first dimension size) in the GenericMultiComponent3d. 
 
RegularVector3dField3d(const size_type slices, const size_type rows, const size_type cols, const slip::Point3d< GridT > &init_point, const slip::Point3d< GridT > &grid_step, const slip::Vector3d< T > *val)
Constructs a RegularVector3dField3d initialized by an array val. 
 
Provides a class to manipulate multicomponent 3d containers. 
 
slip::lin_alg_traits< value_type >::value_type norm_type
 
This is some iterator to iterate a 3d container into a Box area defined by the subscripts of the 3d c...