MOAB: Mesh Oriented datABase  (version 5.3.0)
TMPDerivs.hpp File Reference

Utility methods for calculating derivatives of TMP metrics. More...

#include "Mesquite.hpp"
#include "MsqMatrix.hpp"
+ Include dependency graph for TMPDerivs.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MBMesquite
 

Implements the NonSmoothDescent class member functions.


Defines

#define MSQ_ROW_BASED_OUTER_PRODUCT

Functions

template<unsigned D>
void MBMesquite::hess_scale_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha)
 \( R *= s \)
void MBMesquite::hess_scale (MsqMatrix< 3, 3 > R[6], double alpha)
void MBMesquite::hess_scale (MsqMatrix< 2, 2 > R[3], double alpha)
void MBMesquite::set_scaled_I (MsqMatrix< 3, 3 > R[6], double alpha)
 \( R = \alpha I_9 \)
void MBMesquite::pluseq_scaled_I (MsqMatrix< 3, 3 > R[6], double alpha)
 \( R += \alpha I_9 \)
void MBMesquite::pluseq_scaled_I (MsqMatrix< 3, 3 > &R, double alpha)
 \( R += \alpha I_9 \)
void MBMesquite::set_scaled_I (MsqMatrix< 2, 2 > R[3], double alpha)
 \( R = \alpha I_4 \)
void MBMesquite::pluseq_scaled_I (MsqMatrix< 2, 2 > R[3], double alpha)
 \( R += \alpha I_4 \)
void MBMesquite::pluseq_scaled_I (MsqMatrix< 2, 2 > &R, double alpha)
 \( R += \alpha I_4 \)
void MBMesquite::pluseq_scaled_2nd_deriv_of_det (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &T)
 \( R += \alpha \frac{\partial}{\partial T}det(T) \)
void MBMesquite::pluseq_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha)
 \( R += \alpha \frac{\partial}{\partial T}det(T) \)
void MBMesquite::pluseq_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &)
void MBMesquite::set_scaled_2nd_deriv_of_det (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &T)
 \( R = \alpha \frac{\partial}{\partial T}det(T) \)
void MBMesquite::set_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha)
 \( R = \alpha \frac{\partial}{\partial T}det(T) \)
void MBMesquite::set_scaled_2nd_deriv_of_det (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &)
void MBMesquite::pluseq_scaled_2nd_deriv_tr_adj (MsqMatrix< 2, 2 > R[3], double alpha)
 \( R += \alpha \frac{\partial^2}{\partial T^2}tr(adj T) \)
void MBMesquite::pluseq_scaled_2nd_deriv_tr_adj (MsqMatrix< 3, 3 > R[6], double alpha)
 \( R += \alpha \frac{\partial^2}{\partial T^2}tr(adj T) \)
void MBMesquite::set_scaled_2nd_deriv_norm_sqr_adj (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &T)
 \( R += \alpha \frac{\partial^2}{\partial T^2}|adj T|^2 \)
void MBMesquite::set_scaled_2nd_deriv_norm_sqr_adj (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &T)
 \( R += \alpha \frac{\partial^2}{\partial T^2}|adj T|^2 \)
template<unsigned D>
void MBMesquite::pluseq_scaled_outer_product_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > &M)
 \( R += \alpha \left( M \otimes M \right) \)
void MBMesquite::pluseq_scaled_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &M)
void MBMesquite::pluseq_scaled_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &M)
template<unsigned D>
void MBMesquite::set_scaled_outer_product_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > &M)
 \( R = \alpha \left( M \otimes M \right) \)
void MBMesquite::set_scaled_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &M)
void MBMesquite::set_scaled_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &M)
void MBMesquite::pluseq_scaled_sum_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &A, const MsqMatrix< 3, 3 > &B)
 \( R += \alpha \left( A \otimes B + B \otimes A \right) \)
void MBMesquite::pluseq_scaled_sum_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &A, const MsqMatrix< 2, 2 > &B)
 \( R += \alpha \left( A \otimes B + B \otimes A \right) \)
void MBMesquite::set_scaled_sum_outer_product (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &A, const MsqMatrix< 3, 3 > &B)
 \( R = \alpha \left( A \otimes B + B \otimes A \right) \)
void MBMesquite::set_scaled_sum_outer_product (MsqMatrix< 2, 2 > R[3], double alpha, const MsqMatrix< 2, 2 > &A, const MsqMatrix< 2, 2 > &B)
 \( R = \alpha \left( A \otimes B + B \otimes A \right) \)
void MBMesquite::pluseq_scaled_outer_product_I_I (MsqMatrix< 3, 3 > R[6], double alpha)
 \( R += \alpha (I \otimes I) \)
void MBMesquite::pluseq_scaled_outer_product_I_I (MsqMatrix< 2, 2 > R[3], double alpha)
 \( R += \alpha (I \otimes I) \)
void MBMesquite::pluseq_I_outer_product (MsqMatrix< 3, 3 > R[6], const MsqMatrix< 3, 3 > &A)
 \( R += I \otimes A \)
void MBMesquite::pluseq_outer_product_I (MsqMatrix< 3, 3 > R[6], const MsqMatrix< 3, 3 > &A)
 \( R += A \otimes I \)
template<unsigned D>
void MBMesquite::pluseq_scaled_sum_outer_product_I_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > &A)
 \( R += \alpha \left( I \otimes A + A \otimes I \right) \)
void MBMesquite::pluseq_scaled_sum_outer_product_I (MsqMatrix< 3, 3 > R[6], double alpha, const MsqMatrix< 3, 3 > &A_in)
void MBMesquite::pluseq_scaled_sum_outer_product_I (MsqMatrix< 2, 2 > R[2], double alpha, const MsqMatrix< 2, 2 > &A_in)
template<unsigned D>
void MBMesquite::second_deriv_wrt_product_factor_t (MsqMatrix< D, D > R[D *(D+1)/2], const MsqMatrix< D, D > &Z)
 \( \frac{\partial^2 f}{\partial (AZ)^2} \Rightarrow \frac{\partial^2 f}{\partial A^2} \)
void MBMesquite::second_deriv_wrt_product_factor (MsqMatrix< 3, 3 > R[6], const MsqMatrix< 3, 3 > &Z)
void MBMesquite::second_deriv_wrt_product_factor (MsqMatrix< 2, 2 > R[3], const MsqMatrix< 2, 2 > &Z)
void MBMesquite::set_scaled_2nd_deriv_wrt_psi (MsqMatrix< 2, 2 > R[3], const double alpha, const double psi, const MsqMatrix< 2, 2 > &T)
 \( R = \alpha * \frac{\partial^2 \psi(T)}{\partial T^2} \)
template<unsigned D>
void MBMesquite::pluseq_scaled_t (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > Z[D *(D+1)/2])
 \( R = R + \alpha * Z \)
void MBMesquite::pluseq_scaled_2nd_deriv_tr_adj (MsqMatrix< 2, 2 > *, double)
void MBMesquite::pluseq_I_outer_product (MsqMatrix< 2, 2 > R[3], const MsqMatrix< 2, 2 > &A)
void MBMesquite::pluseq_outer_product_I (MsqMatrix< 2, 2 > R[3], const MsqMatrix< 2, 2 > &A)
template<unsigned D>
void MBMesquite::pluseq_scaled (MsqMatrix< D, D > R[D *(D+1)/2], double alpha, const MsqMatrix< D, D > Z[D *(D+1)/2])

Detailed Description

Utility methods for calculating derivatives of TMP metrics.

Author:
Jason Kraftcheck

Definition in file TMPDerivs.hpp.


Define Documentation

If defined, then \( (A \otimes B)_{i,j} = row(A,i)^t \otimes row(B,j) \) otherwise \( (A \otimes B)_{i,j} = column(A,i) \otimes column(B,j)^t \)

Definition at line 41 of file TMPDerivs.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines