libMesh
Loading...
Searching...
No Matches
Public Member Functions | Private Types | List of all members
ADVectorValueTest Class Reference
Inheritance diagram for ADVectorValueTest:
[legend]

Public Member Functions

 LIBMESH_CPPUNIT_TEST_SUITE (ADVectorValueTest)
 
 CPPUNIT_TEST (testNormAtZeroDerivative)
 
 CPPUNIT_TEST (testNormDerivative)
 
 CPPUNIT_TEST_SUITE_END ()
 
void testNormAtZeroDerivative ()
 
void testNormDerivative ()
 

Private Types

typedef MetaPhysicL::DualNumber< Real > ADReal
 

Detailed Description

Definition at line 150 of file vector_value_test.C.

Member Typedef Documentation

◆ ADReal

typedef MetaPhysicL::DualNumber<Real> ADVectorValueTest::ADReal
private

Definition at line 160 of file vector_value_test.C.

Member Function Documentation

◆ CPPUNIT_TEST() [1/2]

ADVectorValueTest::CPPUNIT_TEST ( testNormAtZeroDerivative  )

◆ CPPUNIT_TEST() [2/2]

ADVectorValueTest::CPPUNIT_TEST ( testNormDerivative  )

◆ CPPUNIT_TEST_SUITE_END()

ADVectorValueTest::CPPUNIT_TEST_SUITE_END ( )

◆ LIBMESH_CPPUNIT_TEST_SUITE()

ADVectorValueTest::LIBMESH_CPPUNIT_TEST_SUITE ( ADVectorValueTest  )

◆ testNormAtZeroDerivative()

void ADVectorValueTest::testNormAtZeroDerivative ( )
inline

Definition at line 163 of file vector_value_test.C.

164 {
165 LOG_UNIT_TEST;
166
167 VectorValue<ADReal> avector(ADReal(0, 1));
168#if LIBMESH_DIM > 1
169 avector(1) = ADReal(0, 1);
170#endif
171#if LIBMESH_DIM > 2
172 avector(2) = ADReal(0, 1);
173#endif
174
175 const ADReal result = avector.norm();
176
177 LIBMESH_ASSERT_FP_EQUAL( Real(0), result.value(), TOLERANCE*TOLERANCE );
178 LIBMESH_ASSERT_FP_EQUAL( Real(0), result.derivatives(), TOLERANCE*TOLERANCE );
179 }
MetaPhysicL::DualNumber< Real > ADReal
This class defines a vector in LIBMESH_DIM dimensional Real or Complex space.
static constexpr Real TOLERANCE
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

References libMesh::TypeVector< T >::norm(), libMesh::Real, and libMesh::TOLERANCE.

◆ testNormDerivative()

void ADVectorValueTest::testNormDerivative ( )
inline

Definition at line 181 of file vector_value_test.C.

182 {
183 LOG_UNIT_TEST;
184
185 VectorValue<ADReal> avector(ADReal(1, 1));
186#if LIBMESH_DIM > 1
187 avector(1) = ADReal(1, 1);
188#endif
189#if LIBMESH_DIM > 2
190 avector(2) = ADReal(1, 1);
191#endif
192
193 const ADReal result = avector.norm();
194
195 LIBMESH_ASSERT_FP_EQUAL( std::sqrt(Real(LIBMESH_DIM)), result.value(), TOLERANCE*TOLERANCE );
196 LIBMESH_ASSERT_FP_EQUAL( std::sqrt(Real(LIBMESH_DIM)), result.derivatives(), TOLERANCE*TOLERANCE );
197 }

References libMesh::TypeVector< T >::norm(), libMesh::Real, and libMesh::TOLERANCE.


The documentation for this class was generated from the following file: