Ejemplo n.º 1
0
template<class TV> void CubicHinges<TV>::update_position(Array<const TV> X_, bool definite) {
  // Not much to do since our stiffness matrix is so simple
  GEODE_ASSERT(X_.size()>=nodes_);
  if (definite && !simple_hessian)
    GEODE_NOT_IMPLEMENTED("Definiteness fix implemented only for the simple_hessian case");
  X = X_;
}
Ejemplo n.º 2
0
NdArray<T> TriangleSubdivision::loop_subdivide_python(NdArray<const T> X) const {
  if(X.rank()==1)
    return loop_subdivide(RawArray<const T>(X));
  else if(X.rank()==2) {
    switch(X.shape[1]) {
      case 1: return loop_subdivide(RawArray<const T>(X));
      case 2: return loop_subdivide(vector_view<2>(X.flat));
      case 3: return loop_subdivide(vector_view<3>(X.flat));
      default: GEODE_NOT_IMPLEMENTED("general size vectors");
    }
  } else
    GEODE_FATAL_ERROR("expected rank 1 or 2");
}
Ejemplo n.º 3
0
void SparseMatrix::
multiply_python(NdArray<const T> x,NdArray<T> result) const {
  GEODE_ASSERT(x.shape==result.shape);
  if(x.rank()==1)
    multiply_helper(RawArray<const T>(x),RawArray<T>(result));
  else if(x.rank()==2) {
    switch(x.shape[1]) {
      case 1: return multiply_helper(RawArray<const T>(x),RawArray<T>(result));
      case 2: return multiply_helper(vector_view<2>(x.flat),vector_view<2>(result.flat));
      case 3: return multiply_helper(vector_view<3>(x.flat),vector_view<3>(result.flat));
      default: GEODE_NOT_IMPLEMENTED("general size vectors");
    }
  } else
    GEODE_FATAL_ERROR("expected rank 1 or 2");
}
Ejemplo n.º 4
0
bool Cylinder::lazy_intersects(const Box<TV>& box) const {
  GEODE_NOT_IMPLEMENTED();
}
Ejemplo n.º 5
0
Vector<T,2> Cylinder::principal_curvatures(const TV& X) const {
  GEODE_NOT_IMPLEMENTED();
}
Ejemplo n.º 6
0
void SimpleShell::add_elastic_gradient_block_diagonal(RawArray<SymmetricMatrix<T,3>> dFdX) const {
  GEODE_NOT_IMPLEMENTED();
}
Ejemplo n.º 7
0
void SurfacePins::add_damping_gradient(SolidMatrix<TV>& matrix) const {
  GEODE_ASSERT(matrix.size()==mass.size());
  GEODE_NOT_IMPLEMENTED();
}