Example #1
0
    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())
Example #2
0
    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)
Example #3
0
    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())
Example #4
0
    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())