Ejemplo n.º 1
0
 def d2VCW(self, X, T):
     '''
     Calculates the Hessian matrix for CW potential for counterterm calculation.
     ''' 
     try:
         f = self._d2VCW
     except:
         
         self._d2VCW = helper_functions.hessianFunction(
             self.V1, self.x_eps, self.Ndim, self.deriv_order)
         f = self._d2VCW
     T = np.asanyarray(T)[...,np.newaxis]
     return f(X, T)
    def massSqMatrix(self, X):
        """
        Calculate the tree-level mass matrix of the scalar field.

        This uses :func:`helper_functions.hessianFunction` to calculate the
        matrix using finite differences, with differences
        given by `self.x_eps`. Note that `self.x_eps` is only used directly
        the first time this function is called, so subsequently changing it
        will not have an effect.

        The resulting matrix will have rank `Ndim`. This function may be useful
        for subclasses in finding the boson particle spectrum.
        """
        try:
            f = self._massSqMatrix
        except:
            # Create the gradient function
            self._massSqMatrix = helper_functions.hessianFunction(
                self.V0, self.x_eps, self.Ndim, self.deriv_order)
            f = self._massSqMatrix
        return f(X)
    def d2V(self, X, T):
        """
        Calculates the Hessian (second derivative) matrix for the
        finite-temperature effective potential.

        This uses :func:`helper_functions.hessianFunction` to calculate the
        matrix using finite differences, with differences
        given by `self.x_eps`. Note that `self.x_eps` is only used directly
        the first time this function is called, so subsequently changing it
        will not have an effect.
        """
        try:
            f = self._d2V
        except:
            # Create the gradient function
            self._d2V = helper_functions.hessianFunction(
                self.Vtot, self.x_eps, self.Ndim, self.deriv_order)
            f = self._d2V
        # Need to add extra axes to T since extra axes get added to X in
        # the helper function.
        T = np.asanyarray(T)[..., np.newaxis]
        return f(X, T, False)