コード例 #1
0
bool GLGPU3DDataset::Supercurrent(const double X[3], double J[3]) const
{
  static const int st[3] = {0};
  double gpt[3];
  const double *j[3] = {_Jx, _Jy, _Jz};
  
  Pos2Grid(X, gpt);
  if (isnan(gpt[0]) || gpt[0]<=1 || gpt[0]>dims()[0]-2 || 
      isnan(gpt[1]) || gpt[1]<=1 || gpt[1]>dims()[1]-2 || 
      isnan(gpt[2]) || gpt[2]<=1 || gpt[2]>dims()[2]-2) return false;

  if (!lerp3D(gpt, st, dims(), 3, j, J))
    return false;
  else return true;
}
コード例 #2
0
bool GLGPU3DDataset::Supercurrent(const float X[3], float J[3], int slot) const
{
  static const int st[3] = {0};
  float gpt[3];
  const float *j[3] = {_Jx[slot], _Jy[slot], _Jz[slot]};
 
  Pos2Grid(X, gpt);
  if (isnan(gpt[0]) || gpt[0]<=1 || gpt[0]>dims()[0]-2 || 
      isnan(gpt[1]) || gpt[1]<=1 || gpt[1]>dims()[1]-2 || 
      isnan(gpt[2]) || gpt[2]<=1 || gpt[2]>dims()[2]-2) return false;

  if (!lerp3D(gpt, st, dims(), 3, j, J))
    return false;
  else return true;
}