libmesh解析
本工作只是尝试解析原libmesh的代码,供学习使用
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 
| 类型定义 | 函数
std 命名空间参考

struct  plus< boost::multiprecision::float128 >
 
struct  multiplies< boost::multiprecision::float128 >
 

类型定义

template<typename T , typename D , bool asd>
using ADRealEigenVector = Eigen::Matrix< MetaPhysicL::DualNumber< T, D, asd >, Eigen::Dynamic, 1 >
 使用MetaPhysicL::DualNumber类型的Eigen矩阵来定义自动微分实数向量类型。 更多...
 

函数

 LIBMESH_FLOAT128_UNARY (sqrt) LIBMESH_FLOAT128_UNARY(exp) LIBMESH_FLOAT128_UNARY(log) LIBMESH_FLOAT128_UNARY(log10) LIBMESH_FLOAT128_UNARY(sin) LIBMESH_FLOAT128_UNARY(cos) LIBMESH_FLOAT128_UNARY(tan) LIBMESH_FLOAT128_UNARY(asin) LIBMESH_FLOAT128_UNARY(acos) LIBMESH_FLOAT128_UNARY(atan) LIBMESH_FLOAT128_UNARY(sinh) LIBMESH_FLOAT128_UNARY(cosh) LIBMESH_FLOAT128_UNARY(tanh) LIBMESH_FLOAT128_UNARY(abs) LIBMESH_FLOAT128_UNARY(fabs) LIBMESH_FLOAT128_UNARY(ceil) LIBMESH_FLOAT128_UNARY(floor) inline boost
 
boost::multiprecision::float128 real (const boost::multiprecision::float128 in)
 
boost::multiprecision::float128 imag (const boost::multiprecision::float128)
 
 LIBMESH_FLOAT128_MATH_BOOL (isinf) LIBMESH_FLOAT128_MATH_BOOL(isnan) inline boost
 
 LIBMESH_FLOAT128_BINARY (pow) LIBMESH_FLOAT128_BINARY(atan2) LIBMESH_FLOAT128_BINARY(fmod) inline boost
 
 LIBMESH_FLOAT128_UNARY (trunc) LIBMESH_FLOAT128_UNARY(round) LIBMESH_FLOAT128_UNARY(log1p) inline long long llround(const boost
 
 LIBMESH_DEFINE_BOTH_MAX_MIN (long double, double) LIBMESH_DEFINE_BOTH_MAX_MIN(long double
 
float LIBMESH_DEFINE_BOTH_MAX_MIN (double, float) LIBMESH_DEFINE_BOTH_MAX_MIN(libMesh
 
std::ostream & operator<< (std::ostream &os, const PetscScalar in)
 
template<typename T , typename D , bool asd>
ADRealEigenVector< T, D, asd > norm (const ADRealEigenVector< T, D, asd > &)
 计算自动微分实数向量的范数。 更多...
 
template<typename T , typename D , bool asd>
ADRealEigenVector< T, D, asd > norm (ADRealEigenVector< T, D, asd > &&)
 计算自动微分实数向量的范数。 更多...
 
template<typename T , typename D , bool asd>
ADRealEigenVector< T, D, asd > sqrt (const ADRealEigenVector< T, D, asd > &)
 计算自动微分实数向量的平方根。 更多...
 
template<typename T , typename D , bool asd>
ADRealEigenVector< T, D, asd > sqrt (ADRealEigenVector< T, D, asd > &&)
 计算自动微分实数向量的平方根。 更多...
 
template<typename T , typename D , bool asd>
ADRealEigenVector< T, D, asd > abs (const ADRealEigenVector< T, D, asd > &)
 计算自动微分实数向量的绝对值。 更多...
 
template<typename T , typename D , bool asd>
ADRealEigenVector< T, D, asd > abs (ADRealEigenVector< T, D, asd > &&)
 计算自动微分实数向量的绝对值。 更多...
 
template<typename T >
auto norm (const libMesh::TypeVector< T > &vector) -> decltype(std::norm(T()))
 

类型定义说明

template<typename T , typename D , bool asd>
using std::ADRealEigenVector = typedef Eigen::Matrix<MetaPhysicL::DualNumber<T, D, asd>, Eigen::Dynamic, 1>

使用MetaPhysicL::DualNumber类型的Eigen矩阵来定义自动微分实数向量类型。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。

在文件 type_vector.h52 行定义.

函数说明

template<typename T , typename D , bool asd>
ADRealEigenVector<T, D, asd> std::abs ( const ADRealEigenVector< T, D, asd > &  )

计算自动微分实数向量的绝对值。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。
参数
v要计算绝对值的自动微分实数向量。
返回
返回计算得到的绝对值向量。
异常
std::runtime_error如果函数未实现。

在文件 type_vector.h112 行定义.

参考自 GETPOT_NAMESPACE::GetPot::_DBE_expand(), libMesh::DenseMatrix< T >::_lu_decompose(), libMesh::DistributedVector< T >::abs(), libMesh::EigenSparseVector< T >::abs(), libMesh::LaspackVector< T >::abs(), libMesh::TypeVector< T >::absolute_fuzzy_equals(), libMesh::LumpedMassMatrix< T >::add(), libMesh::NumericVector< T >::compare(), libMesh::EigenSparseMatrix< T >::l1_norm(), libMesh::DenseSubVector< T >::l1_norm(), libMesh::DistributedVector< T >::l1_norm(), libMesh::DenseVector< T >::l1_norm(), libMesh::DenseMatrix< T >::l1_norm(), libMesh::EigenSparseMatrix< T >::linfty_norm(), libMesh::DistributedVector< T >::linfty_norm(), libMesh::DenseMatrix< T >::linfty_norm(), libMesh::NumericVector< T >::local_relative_compare(), libMesh::DofMap::max_constraint_error(), libMesh::DofObject::n_pseudo_systems(), libMesh::TypeTensor< T >::operator==(), libMesh::EpetraVector< T >::reciprocal(), libMesh::TypeVector< T >::relative_fuzzy_equals(), libMesh::LumpedMassMatrix< T >::set(), libMesh::DofObject::start_idx(), libMesh::NumericVector< T >::subset_l1_norm(), libMesh::NumericVector< T >::subset_linfty_norm() , 以及 libMesh::DofObject::unpack_indexing().

112 {throw std::runtime_error("unimplemented");}
template<typename T , typename D , bool asd>
ADRealEigenVector<T, D, asd> std::abs ( ADRealEigenVector< T, D, asd > &&  )

计算自动微分实数向量的绝对值。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。
参数
v要计算绝对值的自动微分实数向量。
返回
返回计算得到的绝对值向量。
异常
std::runtime_error如果函数未实现。

在文件 type_vector.h124 行定义.

124 {throw std::runtime_error("unimplemented");}
boost::multiprecision::float128 std::imag ( const boost::multiprecision::float128  )
inline
std::LIBMESH_DEFINE_BOTH_MAX_MIN ( long  double,
double   
)
float std::LIBMESH_DEFINE_BOTH_MAX_MIN ( double  ,
float   
)

在文件 libmesh_augment_std_namespace.h41 行定义.

52 { return ::fabs(a); }
std::LIBMESH_FLOAT128_BINARY ( pow  )

在文件 float128_shims.h132 行定义.

141 {
142  return boost::multiprecision::pow(in1, in2);
143 }
std::LIBMESH_FLOAT128_MATH_BOOL ( isinf  )

在文件 float128_shims.h116 行定义.

124 {
125 #ifdef BOOST_MP_USE_QUAD
126  return __modfq(in.backend().value(), &intpart->backend().value());
127 #elif defined(BOOST_MP_USE_FLOAT128)
128  return modfq(in.backend().value(), &intpart->backend().value());
129 #endif
130 }
std::LIBMESH_FLOAT128_UNARY ( sqrt  )

在文件 float128_shims.h56 行定义.

77 {
78  return in * in;
79 }
std::LIBMESH_FLOAT128_UNARY ( trunc  ) const

在文件 float128_shims.h150 行定义.

161 {
162  return boost::multiprecision::llround(in);
163 }
template<typename T , typename D , bool asd>
ADRealEigenVector<T, D, asd> std::norm ( const ADRealEigenVector< T, D, asd > &  )

计算自动微分实数向量的范数。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。
参数
v要计算范数的自动微分实数向量。
返回
返回计算得到的范数。
异常
std::runtime_error如果函数未实现。

在文件 type_vector.h64 行定义.

参考自 libMesh::DenseVector< T >::l2_norm(), libMesh::NumericVector< T >::l2_norm_diff(), libMesh::TensorTools::norm_sq(), libMesh::NumericVector< T >::subset_l1_norm(), libMesh::NumericVector< T >::subset_l2_norm(), libMesh::NumericVector< T >::subset_linfty_norm() , 以及 libMesh::TypeVector< T >::unit().

64 {throw std::runtime_error("unimplemented");}
template<typename T , typename D , bool asd>
ADRealEigenVector<T, D, asd> std::norm ( ADRealEigenVector< T, D, asd > &&  )

计算自动微分实数向量的范数。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。
参数
v要计算范数的自动微分实数向量。
返回
返回计算得到的范数。
异常
std::runtime_error如果函数未实现。

在文件 type_vector.h76 行定义.

76 {throw std::runtime_error("unimplemented");}
template<typename T >
auto std::norm ( const libMesh::TypeVector< T > &  vector) -> decltype(std::norm(T()))

在文件 type_vector.h1309 行定义.

1310 {
1311  return vector.norm();
1312 }
auto norm() const -> decltype(std::norm(T()))
返回向量的模,即元素平方和的平方根。
Definition: type_vector.h:1055
std::ostream& std::operator<< ( std::ostream &  os,
const PetscScalar  in 
)
inline

在文件 petsc_macro.h123 行定义.

124 {
125  os << (boost::multiprecision::float128(in));
126  return os;
127 }
boost::multiprecision::float128 std::real ( const boost::multiprecision::float128  in)
inline
template<typename T , typename D , bool asd>
ADRealEigenVector<T, D, asd> std::sqrt ( const ADRealEigenVector< T, D, asd > &  )

计算自动微分实数向量的平方根。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。
参数
v要计算平方根的自动微分实数向量。
返回
返回计算得到的平方根。
异常
std::runtime_error如果函数未实现。

在文件 type_vector.h88 行定义.

参考自 libMesh::DenseMatrix< T >::_cholesky_decompose(), GETPOT_NAMESPACE::GetPot::_DBE_expand(), libMesh::cross_norm(), libMesh::DenseSubVector< T >::l2_norm(), libMesh::DistributedVector< T >::l2_norm(), libMesh::DenseVector< T >::l2_norm(), libMesh::NumericVector< T >::l2_norm_diff(), libMesh::DenseSubVector< T >::linfty_norm(), libMesh::DenseVector< T >::linfty_norm(), libMesh::TypeTensor< T >::norm(), libMesh::TypeVector< T >::norm() , 以及 libMesh::NumericVector< T >::subset_l2_norm().

88 {throw std::runtime_error("unimplemented");}
template<typename T , typename D , bool asd>
ADRealEigenVector<T, D, asd> std::sqrt ( ADRealEigenVector< T, D, asd > &&  )

计算自动微分实数向量的平方根。

模板参数
T元素类型。
D自动微分数的数量。
asd是否是自动微分数。
参数
v要计算平方根的自动微分实数向量。
返回
返回计算得到的平方根。
异常
std::runtime_error如果函数未实现。

在文件 type_vector.h100 行定义.

100 {throw std::runtime_error("unimplemented");}