svMultiPhysics
Loading...
Searching...
No Matches
mat_models.h
1// SPDX-FileCopyrightText: Copyright (c) Stanford University, The Regents of the University of California, and others.
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef MAT_MODELS_H
5#define MAT_MODELS_H
6
7#include "Array.h"
8#include "CepMod.h"
9#include "ComMod.h"
10#include "Tensor4.h"
11
12#include "mat_fun.h"
13
14#include "eigen3/Eigen/Core"
15#include "eigen3/Eigen/Dense"
16#include "eigen3/unsupported/Eigen/CXX11/Tensor"
17
18namespace mat_models {
19
20void actv_strain(const ComMod& com_mod, const CepMod& cep_mod, const double gf,
21 const int nfd, const Array<double>& fl, Array<double>& Fa);
22
23void cc_to_voigt(const int nsd, const Tensor4<double>& CC, Array<double>& Dm);
24
25void voigt_to_cc(const int nsd, const Array<double>& Dm, Tensor4<double>& CC);
26
27void compute_fib_stress(const ComMod& com_mod, const CepMod& cep_mod, const fibStrsType& Tfl, double& g);
28
29void compute_pk2cc(const ComMod& com_mod, const CepMod& cep_mod, const dmnType& lDmn, const Array<double>& F, const int nfd,
30 const Array<double>& fl, const double ya, Array<double>& S, Array<double>& Dm, double& Ja);
31
32void compute_pk2cc_shlc(const ComMod& com_mod, const dmnType& lDmn, const int nfd, const Array<double>& fNa0,
33 const Array<double>& gg_0, const Array<double>& gg_x, double& g33, Vector<double>& Sml, Array<double>& Dml);
34
35void compute_pk2cc_shli(const ComMod& com_mod, const dmnType& lDmn, const int nfd, const Array<double>& fNa0,
36 const Array<double>& gg_0, const Array<double>& gg_x, double& g33, Vector<double>& Sml, Array<double>& Dml);
37
38void compute_tau(const ComMod& com_mod, const dmnType& lDmn, const double detF, const double Je, double& tauM, double& tauC);
39
40void compute_svol_p(const ComMod& com_mod, const CepMod& cep_mod, const stModelType& stM, const double J,
41 double& p, double& pl);
42
43void g_vol_pen(const ComMod& com_mod, const dmnType& lDmn, const double p,
44 double& ro, double& bt, double& dro, double& dbt, const double Ja);
45
46void compute_visc_stress_potential(const double mu, const int eNoN, const Array<double>& Nx, const double vx, const double F,
47 Array<double>& Svis, Array3<double>& Kvis_u, Array3<double>& Kvis_v);
48
49void compute_visc_stress_newtonian(const double mu, const int eNoN, const Array<double>& Nx, const Array<double>& vx, const Array<double>& F,
50 Array<double>& Svis, Array3<double>& Kvis_u, Array3<double>& Kvis_v);
51
52void compute_visc_stress_and_tangent(const dmnType& lDmn, const int eNoN, const Array<double>& Nx, const Array<double>& vx, const Array<double>& F,
53 Array<double>& Svis, Array3<double>& Kvis_u, Array3<double>& Kvis_v);
54};
55
56#endif
57
The Array3 template class implements a simple interface to 3D arrays.
Definition Array3.h:25
Definition CepMod.h:193
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition ComMod.h:1514
The Tensor4 template class implements a simple interface to 4th order tensors.
Definition Tensor4.h:18
The Vector template class is used for storing int and double data.
Definition Vector.h:23
Domain type is to keep track with element belong to which domain and also different physical quantiti...
Definition ComMod.h:422
Definition ComMod.h:311
Structural domain type.
Definition ComMod.h:330