svMultiPhysics
|
Structural mechanics implementation based on the following reference: More...
#include "ustruct.h"
#include "all_fun.h"
#include "fs.h"
#include "mat_fun.h"
#include "mat_models.h"
#include "mat_models_carray.h"
#include "nn.h"
#include "utils.h"
#include <math.h>
Functions | |
void | ustruct::b_ustruct_2d (const ComMod &com_mod, const int eNoN, const double w, const Vector< double > &N, const Array< double > &Nx, const Array< double > &dl, const Vector< double > &hl, const Vector< double > &nV, Array< double > &lR, Array3< double > &lK, Array3< double > &lKd) |
void | ustruct::b_ustruct_3d (const ComMod &com_mod, const int eNoN, const double w, const Vector< double > &N, const Array< double > &Nx, const Array< double > &dl, const Vector< double > &hl, const Vector< double > &nV, Array< double > &lR, Array3< double > &lK, Array3< double > &lKd) |
Add follower pressure load contributions to the local residual and stiffness matrix. More... | |
void | ustruct::construct_usolid (ComMod &com_mod, CepMod &cep_mod, const mshType &lM, const Array< double > &Ag, const Array< double > &Yg, const Array< double > &Dg) |
Reproduces Fortran CONSTRUCT_uSOLID. More... | |
int | ustruct::get_col_ptr (ComMod &com_mod, const int rowN, const int colN) |
void | ustruct::ustruct_2d_c (ComMod &com_mod, CepMod &cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq, const double w, const double Je, const Vector< double > &Nw, const Vector< double > &Nq, const Array< double > &Nwx, const Array< double > &Nqx, const Array< double > &al, const Array< double > &yl, const Array< double > &dl, const Array< double > &bfl, Array< double > &lR, Array3< double > &lK, Array3< double > &lKd) |
Reproduces Fortran USTRUCT2D_C. More... | |
void | ustruct::ustruct_3d_c (ComMod &com_mod, CepMod &cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq, const double w, const double Je, const Vector< double > &Nw, const Vector< double > &Nq, const Array< double > &Nwx, const Array< double > &Nqx, const Array< double > &al, const Array< double > &yl, const Array< double > &dl, const Array< double > &bfl, Array< double > &lR, Array3< double > &lK, Array3< double > &lKd) |
Reproduces Fortran USTRUCT3D_C. More... | |
void | ustruct::ustruct_2d_m (ComMod &com_mod, CepMod &cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq, const int nFn, const double w, const double Je, const Vector< double > &Nw, const Vector< double > &Nq, const Array< double > &Nwx, const Array< double > &al, const Array< double > &yl, const Array< double > &dl, const Array< double > &bfl, const Array< double > &fN, const Vector< double > &ya_l, Array< double > &lR, Array3< double > &lK, Array3< double > &lKd) |
Replicates Fortran USTRUCT2D_M. More... | |
void | ustruct::ustruct_3d_m (ComMod &com_mod, CepMod &cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq, const int nFn, const double w, const double Je, const Vector< double > &Nw, const Vector< double > &Nq, const Array< double > &Nwx, const Array< double > &al, const Array< double > &yl, const Array< double > &dl, const Array< double > &bfl, const Array< double > &fN, const Vector< double > &ya_l, Array< double > &lR, Array3< double > &lK, Array3< double > &lKd) |
Reproduces Fortran USTRUCT3D_M. More... | |
void | ustruct::ustruct_do_assem (ComMod &com_mod, const int d, const Vector< int > &eqN, const Array3< double > &lKd, const Array3< double > &lK, const Array< double > &lR) |
Replicates 'SUBROUTINE USTRUCT_DOASSEM(d, eqN, lKd, lK, lR)'. More... | |
void | ustruct::ustruct_r (ComMod &com_mod, const Array< double > &Yg) |
Structural mechanics implementation based on the following reference:
Ju Liu, Alison L. Marsden, A unified continuum and variational multiscale formulation for fluids, solids, and fluid–structure interaction, Computer Methods in Applied Mechanics and Engineering, Volume 337, 2018, Pages 549-597, ISSN 0045-7825, https://doi.org/10.1016/j.cma.2018.03.045.
This paper describes a unified framework for fluid, solids, and FSI. The code in this file is based on the solid mechanics portion of the paper, which can be found in Section 4.
void ustruct::b_ustruct_3d | ( | const ComMod & | com_mod, |
const int | eNoN, | ||
const double | w, | ||
const Vector< double > & | N, | ||
const Array< double > & | Nx, | ||
const Array< double > & | dl, | ||
const Vector< double > & | hl, | ||
const Vector< double > & | nV, | ||
Array< double > & | lR, | ||
Array3< double > & | lK, | ||
Array3< double > & | lKd | ||
) |
Add follower pressure load contributions to the local residual and stiffness matrix.
com_mod | |
eNoN | |
w | Gauss point weight times reference configuration area |
N | Shape function values at the Gauss point |
Nx | Shape function derivatives at the Gauss point |
dl | Displacement vector |
hl | Magnitude of pressure |
nV | Normal vector (in reference configuration) |
lR | Local residual |
lK | Local stiffness matrix |
lKd | Local stiffness matrix (displacement) |
void ustruct::construct_usolid | ( | ComMod & | com_mod, |
CepMod & | cep_mod, | ||
const mshType & | lM, | ||
const Array< double > & | Ag, | ||
const Array< double > & | Yg, | ||
const Array< double > & | Dg | ||
) |
Reproduces Fortran CONSTRUCT_uSOLID.
void ustruct::ustruct_2d_c | ( | ComMod & | com_mod, |
CepMod & | cep_mod, | ||
const bool | vmsFlag, | ||
const int | eNoNw, | ||
const int | eNoNq, | ||
const double | w, | ||
const double | Je, | ||
const Vector< double > & | Nw, | ||
const Vector< double > & | Nq, | ||
const Array< double > & | Nwx, | ||
const Array< double > & | Nqx, | ||
const Array< double > & | al, | ||
const Array< double > & | yl, | ||
const Array< double > & | dl, | ||
const Array< double > & | bfl, | ||
Array< double > & | lR, | ||
Array3< double > & | lK, | ||
Array3< double > & | lKd | ||
) |
Reproduces Fortran USTRUCT2D_C.
void ustruct::ustruct_2d_m | ( | ComMod & | com_mod, |
CepMod & | cep_mod, | ||
const bool | vmsFlag, | ||
const int | eNoNw, | ||
const int | eNoNq, | ||
const int | nFn, | ||
const double | w, | ||
const double | Je, | ||
const Vector< double > & | Nw, | ||
const Vector< double > & | Nq, | ||
const Array< double > & | Nwx, | ||
const Array< double > & | al, | ||
const Array< double > & | yl, | ||
const Array< double > & | dl, | ||
const Array< double > & | bfl, | ||
const Array< double > & | fN, | ||
const Vector< double > & | ya_l, | ||
Array< double > & | lR, | ||
Array3< double > & | lK, | ||
Array3< double > & | lKd | ||
) |
Replicates Fortran USTRUCT2D_M.
void ustruct::ustruct_3d_c | ( | ComMod & | com_mod, |
CepMod & | cep_mod, | ||
const bool | vmsFlag, | ||
const int | eNoNw, | ||
const int | eNoNq, | ||
const double | w, | ||
const double | Je, | ||
const Vector< double > & | Nw, | ||
const Vector< double > & | Nq, | ||
const Array< double > & | Nwx, | ||
const Array< double > & | Nqx, | ||
const Array< double > & | al, | ||
const Array< double > & | yl, | ||
const Array< double > & | dl, | ||
const Array< double > & | bfl, | ||
Array< double > & | lR, | ||
Array3< double > & | lK, | ||
Array3< double > & | lKd | ||
) |
Reproduces Fortran USTRUCT3D_C.
void ustruct::ustruct_3d_m | ( | ComMod & | com_mod, |
CepMod & | cep_mod, | ||
const bool | vmsFlag, | ||
const int | eNoNw, | ||
const int | eNoNq, | ||
const int | nFn, | ||
const double | w, | ||
const double | Je, | ||
const Vector< double > & | Nw, | ||
const Vector< double > & | Nq, | ||
const Array< double > & | Nwx, | ||
const Array< double > & | al, | ||
const Array< double > & | yl, | ||
const Array< double > & | dl, | ||
const Array< double > & | bfl, | ||
const Array< double > & | fN, | ||
const Vector< double > & | ya_l, | ||
Array< double > & | lR, | ||
Array3< double > & | lK, | ||
Array3< double > & | lKd | ||
) |
Reproduces Fortran USTRUCT3D_M.
void ustruct::ustruct_do_assem | ( | ComMod & | com_mod, |
const int | d, | ||
const Vector< int > & | eqN, | ||
const Array3< double > & | lKd, | ||
const Array3< double > & | lK, | ||
const Array< double > & | lR | ||
) |
Replicates 'SUBROUTINE USTRUCT_DOASSEM(d, eqN, lKd, lK, lR)'.
void ustruct::ustruct_r | ( | ComMod & | com_mod, |
const Array< double > & | Yg | ||
) |
Modifies: com_mod.Rd