|
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 "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. | |
| bool | ustruct::constitutive_model_is_valid (consts::ConstitutiveModelType model) |
| Check is a constitutive model is valid for the ustruct equation. | |
| 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. | |
| 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. | |
| 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_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_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) |
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) |
| bool ustruct::constitutive_model_is_valid | ( | consts::ConstitutiveModelType | model | ) |
Check is a constitutive model is valid for the ustruct equation.
| 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