Я реализовал следующий код, используя autodiff, библиотеку автодифференциации C++. Он предполагает сжимаемый нео-Гукиан для энергии деформации и выводит второе напряжение Пеолы-Кирхгофа (2dW/dC) и тензор модуля (4d^2W/dCdC) для произвольного тензора градиента деформации F. Однако, похоже, существует погрешность по сравнению с аналитическими производными. Поскольку аналитические производные должны быть правильными, я думаю, что проблема заключается в способе реализации автодифференциала. Заранее спасибо.
#include
#include
#include
#include
using namespace autodiff;
using namespace Eigen;
using namespace std;
// compressible neo-Hookean
var W(const ArrayXvar& x)
{
Matrix C;
C
Подробнее здесь: https://stackoverflow.com/questions/786 ... odiff-in-c