MFEM  v4.4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Typedefs | Functions
mfem::ad Namespace Reference

Classes

class  FDualNumber
 

Typedefs

typedef codi::RealForward ADFloatType
 Forward AD type declaration. More...
 
typedef TAutoDiffVector
< ADFloatType
ADVectorType
 Vector type for AD-numbers. More...
 
typedef TAutoDiffDenseMatrix
< ADFloatType
ADMatrixType
 Matrix type for AD-numbers. More...
 

Functions

template<typename tbase >
bool operator== (const FDualNumber< tbase > &a1, const FDualNumber< tbase > &a2)
 
template<typename tbase >
bool operator== (tbase a, const FDualNumber< tbase > &f_)
 boolean operation == More...
 
template<typename tbase >
bool operator== (const FDualNumber< tbase > &a, tbase b)
 boolean operation == More...
 
template<typename tbase >
bool operator< (const FDualNumber< tbase > &f1, const FDualNumber< tbase > &f2)
 boolean operation < More...
 
template<typename tbase >
bool operator< (const FDualNumber< tbase > &f, tbase a)
 boolean operation < More...
 
template<typename tbase >
bool operator< (tbase a, const FDualNumber< tbase > &f)
 boolean operation < More...
 
template<typename tbase >
bool operator> (const FDualNumber< tbase > &f1, const FDualNumber< tbase > &f2)
 boolean operation > More...
 
template<typename tbase >
bool operator> (const FDualNumber< tbase > &f, tbase a)
 boolean operation > More...
 
template<typename tbase >
bool operator> (tbase a, const FDualNumber< tbase > &f)
 boolean operation > More...
 
template<typename tbase >
FDualNumber< tbase > operator- (const FDualNumber< tbase > &f)
 Negate the real and the dual parts. More...
 
template<typename tbase >
FDualNumber< tbase > operator- (const FDualNumber< tbase > &f, tbase a)
 [dual number] - [base number] More...
 
template<typename tbase >
FDualNumber< FDualNumber< tbase > > operator- (const FDualNumber< FDualNumber< tbase >> &f, tbase a)
 [dual number<dual number>] - [base number] More...
 
template<typename tbase >
FDualNumber< tbase > operator+ (const FDualNumber< tbase > &f, tbase a)
 [dual number] + [base number] More...
 
template<typename tbase >
FDualNumber< FDualNumber< tbase > > operator+ (const FDualNumber< FDualNumber< tbase >> &f, tbase a)
 [dual number<dual number>] + [base number] More...
 
template<typename tbase >
FDualNumber< tbase > operator* (const FDualNumber< tbase > &f, tbase a)
 [dual number] * [base number] More...
 
template<typename tbase >
FDualNumber< tbase > operator/ (const FDualNumber< tbase > &f, tbase a)
 [dual number] / [base number] More...
 
template<typename tbase >
FDualNumber< FDualNumber< tbase > > operator/ (const FDualNumber< FDualNumber< tbase >> &f, tbase a)
 [dual number<dual number>] / [base number] More...
 
template<typename tbase >
FDualNumber< tbase > operator+ (tbase a, const FDualNumber< tbase > &f)
 [base number] + [dual number] More...
 
template<typename tbase >
FDualNumber< FDualNumber< tbase > > operator+ (tbase a, const FDualNumber< FDualNumber< tbase >> &f)
 [base number] + [dual number<dual number>] More...
 
template<typename tbase >
FDualNumber< tbase > operator- (tbase a, const FDualNumber< tbase > &f)
 [base number] - [dual number] More...
 
template<typename tbase >
FDualNumber< FDualNumber< tbase > > operator- (tbase a, const FDualNumber< FDualNumber< tbase >> &f)
 [base number] - [dual number<dual number>] More...
 
template<typename tbase >
FDualNumber< tbase > operator* (tbase a, const FDualNumber< tbase > &f)
 [base number] * [dual number] More...
 
template<typename tbase >
FDualNumber< FDualNumber< tbase > > operator* (tbase a, const FDualNumber< FDualNumber< tbase >> &f)
 [base number] * [dual number<dual number>] More...
 
template<typename tbase >
FDualNumber< tbase > operator/ (tbase a, const FDualNumber< tbase > &f)
 [base number] / [dual number] More...
 
template<typename tbase >
FDualNumber< tbase > operator+ (const FDualNumber< tbase > &f1, const FDualNumber< tbase > &f2)
 [dual number] + [dual number] More...
 
template<typename tbase >
FDualNumber< tbase > operator- (const FDualNumber< tbase > &f1, const FDualNumber< tbase > &f2)
 [dual number] - [dual number] More...
 
template<typename tbase >
FDualNumber< tbase > operator* (const FDualNumber< tbase > &f1, const FDualNumber< tbase > &f2)
 [dual number] * [dual number] More...
 
template<typename tbase >
FDualNumber< tbase > operator/ (const FDualNumber< tbase > &f1, const FDualNumber< tbase > &f2)
 [dual number] / [dual number] More...
 
template<typename tbase >
FDualNumber< tbase > acos (const FDualNumber< tbase > &f)
 acos([dual number]) More...
 
template<>
FDualNumber< double > acos (const FDualNumber< double > &f)
 acos([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > asin (const FDualNumber< tbase > &f)
 asin([dual number]) More...
 
template<>
FDualNumber< double > asin (const FDualNumber< double > &f)
 asin([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > atan (const FDualNumber< tbase > &f)
 atan([dual number]) More...
 
template<>
FDualNumber< double > atan (const FDualNumber< double > &f)
 atan([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > cos (const FDualNumber< tbase > &f)
 cos([dual number]) More...
 
template<>
FDualNumber< double > cos (const FDualNumber< double > &f)
 cos([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > cosh (const FDualNumber< tbase > &f)
 cosh([dual number]) More...
 
template<>
FDualNumber< double > cosh (const FDualNumber< double > &f)
 cosh([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > exp (const FDualNumber< tbase > &f)
 exp([dual number]) More...
 
template<>
FDualNumber< double > exp (const FDualNumber< double > &f)
 exp([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > log (const FDualNumber< tbase > &f)
 log([dual number]) More...
 
template<>
FDualNumber< double > log (const FDualNumber< double > &f)
 log([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > log10 (const FDualNumber< tbase > &f)
 log10([dual number]) More...
 
template<>
FDualNumber< double > log10 (const FDualNumber< double > &f)
 log10([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > pow (const FDualNumber< tbase > &a, const FDualNumber< tbase > &b)
 pow([dual number],[dual number]) More...
 
template<typename tbase , typename tbase1 >
FDualNumber< tbase > pow (const FDualNumber< tbase > &a, const tbase1 &b)
 pow([dual number], [base number]) More...
 
template<typename tbase , typename tbase1 >
FDualNumber< tbase > pow (const tbase1 &a, const FDualNumber< tbase > &b)
 pow([base number], [dual number]) More...
 
template<>
FDualNumber< double > pow (const double &a, const FDualNumber< double > &b)
 pow([base number], [dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > sin (const FDualNumber< tbase > &f)
 sin([dual number]) More...
 
template<>
FDualNumber< double > sin (const FDualNumber< double > &f)
 sin([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > sinh (const FDualNumber< tbase > &f)
 sinh([dual number]) More...
 
template<>
FDualNumber< double > sinh (const FDualNumber< double > &f)
 sinh([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > sqrt (const FDualNumber< tbase > &f)
 sqrt([dual number]) More...
 
template<>
FDualNumber< double > sqrt (const FDualNumber< double > &f)
 sqrt([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > tan (const FDualNumber< tbase > &f)
 tan([dual number]) More...
 
template<>
FDualNumber< double > tan (const FDualNumber< double > &f)
 tan([dual number<double>]) More...
 
template<typename tbase >
FDualNumber< tbase > tanh (const FDualNumber< tbase > &f)
 tanh([dual number]) More...
 
template<>
FDualNumber< double > tanh (const FDualNumber< double > &f)
 tanh([dual number<double>]) More...
 

Typedef Documentation

Forward AD type declaration.

MFEM native forward AD-type.

Reverse AD type declaration.

Definition at line 30 of file admfem.hpp.

Matrix type for AD-numbers.

Matrix type for AD-type numbers.

Definition at line 34 of file admfem.hpp.

Vector type for AD-numbers.

Vector type for AD-type numbers.

Definition at line 32 of file admfem.hpp.

Function Documentation

template<typename tbase >
FDualNumber<tbase> mfem::ad::acos ( const FDualNumber< tbase > &  f)
inline

acos([dual number])

Definition at line 423 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::acos ( const FDualNumber< double > &  f)
inline

acos([dual number<double>])

Definition at line 431 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::asin ( const FDualNumber< tbase > &  f)
inline

asin([dual number])

Definition at line 439 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::asin ( const FDualNumber< double > &  f)
inline

asin([dual number<double>])

Definition at line 447 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::atan ( const FDualNumber< tbase > &  f)
inline

atan([dual number])

Definition at line 455 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::atan ( const FDualNumber< double > &  f)
inline

atan([dual number<double>])

Definition at line 463 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::cos ( const FDualNumber< tbase > &  f)
inline

cos([dual number])

Definition at line 471 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::cos ( const FDualNumber< double > &  f)
inline

cos([dual number<double>])

Definition at line 478 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::cosh ( const FDualNumber< tbase > &  f)
inline

cosh([dual number])

Definition at line 485 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::cosh ( const FDualNumber< double > &  f)
inline

cosh([dual number<double>])

Definition at line 492 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::exp ( const FDualNumber< tbase > &  f)
inline

exp([dual number])

Definition at line 499 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::exp ( const FDualNumber< double > &  f)
inline

exp([dual number<double>])

Definition at line 507 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::log ( const FDualNumber< tbase > &  f)
inline

log([dual number])

Definition at line 515 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::log ( const FDualNumber< double > &  f)
inline

log([dual number<double>])

Definition at line 522 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::log10 ( const FDualNumber< tbase > &  f)
inline

log10([dual number])

Definition at line 529 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::log10 ( const FDualNumber< double > &  f)
inline

log10([dual number<double>])

Definition at line 536 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator* ( const FDualNumber< tbase > &  f,
tbase  a 
)
inline

[dual number] * [base number]

Definition at line 313 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator* ( tbase  a,
const FDualNumber< tbase > &  f 
)
inline

[base number] * [dual number]

Definition at line 365 of file fdual.hpp.

template<typename tbase >
FDualNumber<FDualNumber<tbase> > mfem::ad::operator* ( tbase  a,
const FDualNumber< FDualNumber< tbase >> &  f 
)
inline

[base number] * [dual number<dual number>]

Definition at line 372 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator* ( const FDualNumber< tbase > &  f1,
const FDualNumber< tbase > &  f2 
)
inline

[dual number] * [dual number]

Definition at line 404 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator+ ( const FDualNumber< tbase > &  f,
tbase  a 
)
inline

[dual number] + [base number]

Definition at line 298 of file fdual.hpp.

template<typename tbase >
FDualNumber<FDualNumber<tbase> > mfem::ad::operator+ ( const FDualNumber< FDualNumber< tbase >> &  f,
tbase  a 
)
inline

[dual number<dual number>] + [base number]

Definition at line 305 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator+ ( tbase  a,
const FDualNumber< tbase > &  f 
)
inline

[base number] + [dual number]

Definition at line 335 of file fdual.hpp.

template<typename tbase >
FDualNumber<FDualNumber<tbase> > mfem::ad::operator+ ( tbase  a,
const FDualNumber< FDualNumber< tbase >> &  f 
)
inline

[base number] + [dual number<dual number>]

Definition at line 342 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator+ ( const FDualNumber< tbase > &  f1,
const FDualNumber< tbase > &  f2 
)
inline

[dual number] + [dual number]

Definition at line 388 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator- ( const FDualNumber< tbase > &  f)
inline

Negate the real and the dual parts.

Definition at line 276 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator- ( const FDualNumber< tbase > &  f,
tbase  a 
)
inline

[dual number] - [base number]

Definition at line 283 of file fdual.hpp.

template<typename tbase >
FDualNumber<FDualNumber<tbase> > mfem::ad::operator- ( const FDualNumber< FDualNumber< tbase >> &  f,
tbase  a 
)
inline

[dual number<dual number>] - [base number]

Definition at line 290 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator- ( tbase  a,
const FDualNumber< tbase > &  f 
)
inline

[base number] - [dual number]

Definition at line 350 of file fdual.hpp.

template<typename tbase >
FDualNumber<FDualNumber<tbase> > mfem::ad::operator- ( tbase  a,
const FDualNumber< FDualNumber< tbase >> &  f 
)
inline

[base number] - [dual number<dual number>]

Definition at line 357 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator- ( const FDualNumber< tbase > &  f1,
const FDualNumber< tbase > &  f2 
)
inline

[dual number] - [dual number]

Definition at line 396 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator/ ( const FDualNumber< tbase > &  f,
tbase  a 
)
inline

[dual number] / [base number]

Definition at line 320 of file fdual.hpp.

template<typename tbase >
FDualNumber<FDualNumber<tbase> > mfem::ad::operator/ ( const FDualNumber< FDualNumber< tbase >> &  f,
tbase  a 
)
inline

[dual number<dual number>] / [base number]

Definition at line 327 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator/ ( tbase  a,
const FDualNumber< tbase > &  f 
)
inline

[base number] / [dual number]

Definition at line 380 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::operator/ ( const FDualNumber< tbase > &  f1,
const FDualNumber< tbase > &  f2 
)
inline

[dual number] / [dual number]

Definition at line 413 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator< ( const FDualNumber< tbase > &  f1,
const FDualNumber< tbase > &  f2 
)
inline

boolean operation <

Definition at line 232 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator< ( const FDualNumber< tbase > &  f,
tbase  a 
)
inline

boolean operation <

Definition at line 240 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator< ( tbase  a,
const FDualNumber< tbase > &  f 
)
inline

boolean operation <

Definition at line 247 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator== ( const FDualNumber< tbase > &  a1,
const FDualNumber< tbase > &  a2 
)
inline

non-member functions boolean operation ==

Definition at line 210 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator== ( tbase  a,
const FDualNumber< tbase > &  f_ 
)
inline

boolean operation ==

Definition at line 218 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator== ( const FDualNumber< tbase > &  a,
tbase  b 
)
inline

boolean operation ==

Definition at line 225 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator> ( const FDualNumber< tbase > &  f1,
const FDualNumber< tbase > &  f2 
)
inline

boolean operation >

Definition at line 254 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator> ( const FDualNumber< tbase > &  f,
tbase  a 
)
inline

boolean operation >

Definition at line 262 of file fdual.hpp.

template<typename tbase >
bool mfem::ad::operator> ( tbase  a,
const FDualNumber< tbase > &  f 
)
inline

boolean operation >

Definition at line 269 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::pow ( const FDualNumber< tbase > &  a,
const FDualNumber< tbase > &  b 
)
inline

pow([dual number],[dual number])

Definition at line 543 of file fdual.hpp.

template<typename tbase , typename tbase1 >
FDualNumber<tbase> mfem::ad::pow ( const FDualNumber< tbase > &  a,
const tbase1 &  b 
)
inline

pow([dual number], [base number])

Definition at line 551 of file fdual.hpp.

template<typename tbase , typename tbase1 >
FDualNumber<tbase> mfem::ad::pow ( const tbase1 &  a,
const FDualNumber< tbase > &  b 
)
inline

pow([base number], [dual number])

Definition at line 558 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::pow ( const double &  a,
const FDualNumber< double > &  b 
)
inline

pow([base number], [dual number<double>])

Definition at line 565 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::sin ( const FDualNumber< tbase > &  f)
inline

sin([dual number])

Definition at line 572 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::sin ( const FDualNumber< double > &  f)
inline

sin([dual number<double>])

Definition at line 579 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::sinh ( const FDualNumber< tbase > &  f)
inline

sinh([dual number])

Definition at line 586 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::sinh ( const FDualNumber< double > &  f)
inline

sinh([dual number<double>])

Definition at line 593 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::sqrt ( const FDualNumber< tbase > &  f)
inline

sqrt([dual number])

Definition at line 600 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::sqrt ( const FDualNumber< double > &  f)
inline

sqrt([dual number<double>])

Definition at line 608 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::tan ( const FDualNumber< tbase > &  f)
inline

tan([dual number])

Definition at line 616 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::tan ( const FDualNumber< double > &  f)
inline

tan([dual number<double>])

Definition at line 624 of file fdual.hpp.

template<typename tbase >
FDualNumber<tbase> mfem::ad::tanh ( const FDualNumber< tbase > &  f)
inline

tanh([dual number])

Definition at line 632 of file fdual.hpp.

template<>
FDualNumber<double> mfem::ad::tanh ( const FDualNumber< double > &  f)
inline

tanh([dual number<double>])

Definition at line 640 of file fdual.hpp.