def deriv(self, u, d=1): """ Evaluate a derivative on the curve. :param float u: Curve parameter. :param int d: Derivative to evaluate. :return: Curve derivative. :rtype: afem.geometry.entities.Vector """ from afem.geometry.entities import Vector return Vector(self.object.DN(u, d).XYZ())
def to_vector(geom): """ Convert entity to a Vector if possible. :param vector_like geom: An entity. :return: The entity if already a Vector, or a new Vector if it is vector_like. :rtype: afem.geometry.entities.Vector :raise TypeError: If entity cannot be converted to a Vector. """ return Vector.to_vector(geom)
def norm(self, u, v): """ Evaluate a normal on the surface. :param float u: Surface u-parameter. :param float v: Surface v-parameter. :return: Surface normal. :rtype: afem.geometry.entities.Vector """ from afem.geometry.entities import Vector du = self.deriv(u, v, 1, 0) dv = self.deriv(u, v, 0, 1) return Vector(du.Crossed(dv).XYZ())
def deriv(self, u, v, nu, nv): """ Evaluate a derivative on the surface. :param float u: Surface u-parameter. :param float v: Surface v-parameter. :param int nu: Derivative in u-direction. :param int nv: Derivative in v-direction. :return: Surface derivative. :rtype: afem.geometry.entities.Vector """ from afem.geometry.entities import Vector return Vector(self.object.DN(u, v, nu, nv).XYZ())