当前位置: 首页>>代码示例>>C++>>正文


C++ Vector2D::to_covariant方法代码示例

本文整理汇总了C++中Vector2D::to_covariant方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector2D::to_covariant方法的具体用法?C++ Vector2D::to_covariant怎么用?C++ Vector2D::to_covariant使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Vector2D的用法示例。


在下文中一共展示了Vector2D::to_covariant方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Curl

const Vector2D Curl(const Vector2D &v)
{
  Vector2D result;

#ifdef CHECK
  int msg_pos = msg_stack.push("Curl( Vector2D )");
#endif

  // Get covariant components of v
  Vector2D vco = v;
  vco.to_covariant();

  // get components (curl(v))^j

  result.x = (DDY(vco.z) - DDZ(vco.y))/J;
  result.y = (DDZ(vco.x) - DDX(vco.z))/J;
  result.z = (DDX(vco.y) - DDY(vco.x))/J;
  
  if(ShiftXderivs) {
    result.z -= ShiftTorsion*vco.z / J;
  }

  result.covariant = false; // result is contravariant
#ifdef CHECK
  msg_stack.pop(msg_pos);
#endif
  return result;
}
开发者ID:bendudson,项目名称:BOUT-0.8,代码行数:28,代码来源:vecops.cpp

示例2: write

bool Datafile::write(const string &filename, bool append)
{
  if(!enabled)
    return true; // Just pretend it worked
  
  // Record starting time
  real tstart = MPI_Wtime();

  if(!file->openw(filename, append))
    return false;

  if(!file->is_valid())
    return false;
  
  file->setRecord(-1); // Latest record

  // Write integers
  for(std::vector< VarStr<int> >::iterator it = int_arr.begin(); it != int_arr.end(); it++) {
    if(it->grow) {
      file->write_rec(it->ptr, it->name);
    }else {
      file->write(it->ptr, it->name);
    }
  }
  
  // Write reals
  for(std::vector< VarStr<real> >::iterator it = real_arr.begin(); it != real_arr.end(); it++) {
    if(it->grow) {
      file->write_rec(it->ptr, it->name);
    }else {
      file->write(it->ptr, it->name);
    }
  }

  // Write 2D fields
  
  for(std::vector< VarStr<Field2D> >::iterator it = f2d_arr.begin(); it != f2d_arr.end(); it++) {
    write_f2d(it->name, it->ptr, it->grow);
  }

  // Write 3D fields
  
  for(std::vector< VarStr<Field3D> >::iterator it = f3d_arr.begin(); it != f3d_arr.end(); it++) {
    write_f3d(it->name, it->ptr, it->grow);
  }
  
  // 2D vectors
  
  for(std::vector< VarStr<Vector2D> >::iterator it = v2d_arr.begin(); it != v2d_arr.end(); it++) {
    if(it->covar) {
      // Writing covariant vector
      Vector2D v  = *(it->ptr);
      v.to_covariant();
      
      write_f2d(it->name+string("_x"), &(v.x), it->grow);
      write_f2d(it->name+string("_y"), &(v.y), it->grow);
      write_f2d(it->name+string("_z"), &(v.z), it->grow);
    }else {
      // Writing contravariant vector
      Vector2D v  = *(it->ptr);
      v.to_contravariant();
      
      write_f2d(it->name+string("x"), &(v.x), it->grow);
      write_f2d(it->name+string("y"), &(v.y), it->grow);
      write_f2d(it->name+string("z"), &(v.z), it->grow);
    }
  }

  // 3D vectors
  
  for(std::vector< VarStr<Vector3D> >::iterator it = v3d_arr.begin(); it != v3d_arr.end(); it++) {
    if(it->covar) {
      // Writing covariant vector
      Vector3D v  = *(it->ptr);
      v.to_covariant();
      
      write_f3d(it->name+string("_x"), &(v.x), it->grow);
      write_f3d(it->name+string("_y"), &(v.y), it->grow);
      write_f3d(it->name+string("_z"), &(v.z), it->grow);
    }else {
      // Writing contravariant vector
      Vector3D v  = *(it->ptr);
      v.to_contravariant();
      
      write_f3d(it->name+string("x"), &(v.x), it->grow);
      write_f3d(it->name+string("y"), &(v.y), it->grow);
      write_f3d(it->name+string("z"), &(v.z), it->grow);
    }
  }

  file->close();

  wtime += MPI_Wtime() - tstart;

  return true;
}
开发者ID:bendudson,项目名称:BOUT-0.8,代码行数:96,代码来源:datafile.cpp


注:本文中的Vector2D::to_covariant方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。