9#ifndef ArtificialNeuralNet_model_H
10#define ArtificialNeuralNet_model_H
14#include "Parameters.h"
16#include "eigen3/Eigen/Core"
17#include "eigen3/Eigen/Dense"
18#include "eigen3/unsupported/Eigen/CXX11/Tensor"
37 Array<int> activation_functions;
40 Array<double> weights;
46 void uCANN_h0(
const double x,
const int kf,
double &f,
double &df,
double &ddf)
const;
47 void uCANN_h1(
const double x,
const int kf,
const double W,
double &f,
double &df,
double &ddf)
const;
48 void uCANN_h2(
const double x,
const int kf,
const double W,
double &f,
double &df,
double &ddf)
const;
51 void uCANN(
const double xInv,
const int kInv,
52 const int kf0,
const int kf1,
const int kf2,
53 const double W0,
const double W1,
const double W2,
54 double &psi,
double (&dpsi)[9],
double (&ddpsi)[9])
const;
57 void evaluate(
const double aInv[9],
double &psi,
double (&dpsi)[9],
double (&ddpsi)[9])
const;
61 void computeInvariantsAndDerivatives(
62 const Matrix<nsd>& C,
const Matrix<nsd>& fl,
int nfd,
double J2d,
double J4d,
const Matrix<nsd>& Ci,
63 const Matrix<nsd>& Idm,
const double Tfa, Matrix<nsd>& N1,
double& psi,
double (&Inv)[9], std::array<Matrix<nsd>,9>& dInv,
64 std::array<Tensor<nsd>,9>& ddInv)
const;
Definition ArtificialNeuralNetMaterial.h:30
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:41
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:71
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:17
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:90
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:54
The Vector template class is used for storing int and double data.
Definition Vector.h:23
The classes defined here duplicate the data structures in the Fortran MATFUN module defined in MATFUN...
Definition mat_fun.cpp:14