36#ifndef ArtificialNeuralNet_model_H
37#define ArtificialNeuralNet_model_H
41#include "Parameters.h"
43#include "eigen3/Eigen/Core"
44#include "eigen3/Eigen/Dense"
45#include "eigen3/unsupported/Eigen/CXX11/Tensor"
64 Array<int> activation_functions;
67 Array<double> weights;
73 void uCANN_h0(
const double x,
const int kf,
double &f,
double &df,
double &ddf)
const;
74 void uCANN_h1(
const double x,
const int kf,
const double W,
double &f,
double &df,
double &ddf)
const;
75 void uCANN_h2(
const double x,
const int kf,
const double W,
double &f,
double &df,
double &ddf)
const;
78 void uCANN(
const double xInv,
const int kInv,
79 const int kf0,
const int kf1,
const int kf2,
80 const double W0,
const double W1,
const double W2,
81 double &psi,
double (&dpsi)[9],
double (&ddpsi)[9])
const;
84 void evaluate(
const double aInv[9],
double &psi,
double (&dpsi)[9],
double (&ddpsi)[9])
const;
88 void computeInvariantsAndDerivatives(
89 const Matrix<nsd>& C,
const Matrix<nsd>& fl,
int nfd,
double J2d,
double J4d,
const Matrix<nsd>& Ci,
90 const Matrix<nsd>& Idm,
const double Tfa, Matrix<nsd>& N1,
double& psi,
double (&Inv)[9], std::array<Matrix<nsd>,9>& dInv,
91 std::array<Tensor<nsd>,9>& ddInv)
const;
Definition ArtificialNeuralNetMaterial.h:57
void uCANN_h1(const double x, const int kf, const double W, double &f, double &df, double &ddf) const
1st layer output of CANN for activation func kf, input x, weight W
Definition ArtificialNeuralNetMaterial.cpp:68
void uCANN(const double xInv, const int kInv, const int kf0, const int kf1, const int kf2, const double W0, const double W1, const double W2, double &psi, double(&dpsi)[9], double(&ddpsi)[9]) const
Updates psi and its derivatives.
Definition ArtificialNeuralNetMaterial.cpp:98
void uCANN_h0(const double x, const int kf, double &f, double &df, double &ddf) const
0th layer output of CANN for activation func kf, input x
Definition ArtificialNeuralNetMaterial.cpp:44
void evaluate(const double aInv[9], double &psi, double(&dpsi)[9], double(&ddpsi)[9]) const
function to build psi and dpsidI1 to 9
Definition ArtificialNeuralNetMaterial.cpp:117
void uCANN_h2(const double x, const int kf, const double W, double &f, double &df, double &ddf) const
2nd layer output of CANN for activation func kf, input x, weight W
Definition ArtificialNeuralNetMaterial.cpp:81
The Vector template class is used for storing int and double data.
Definition Vector.h:50
The classes defined here duplicate the data structures in the Fortran MATFUN module defined in MATFUN...
Definition mat_fun.cpp:41