svMultiPhysics
Loading...
Searching...
No Matches
ustruct.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 USTRUCT_H
5#define USTRUCT_H
6
7#include "ComMod.h"
8#include "SolutionStates.h"
9
10namespace ustruct {
11
12void b_ustruct_2d(const ComMod& com_mod, const int eNoN, const double w, const Vector<double>& N,
13 const Array<double>& Nx, const Array<double>& dl, const Vector<double>& hl, const Vector<double>& nV,
14 Array<double>& lR, Array3<double>& lK, Array3<double>& lKd);
15
16void b_ustruct_3d(const ComMod& com_mod, const int eNoN, const double w, const Vector<double>& N,
17 const Array<double>& Nx, const Array<double>& dl, const Vector<double>& hl, const Vector<double>& nV,
18 Array<double>& lR, Array3<double>& lK, Array3<double>& lKd);
19
20bool constitutive_model_is_valid(consts::ConstitutiveModelType model);
21
22void construct_usolid(ComMod& com_mod, CepMod& cep_mod, const mshType& lM, const SolutionStates& solutions);
23
24int get_col_ptr(ComMod& com_mod, const int rowN, const int colN);
25
26void ustruct_2d_c(ComMod& com_mod, CepMod& cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq,
27 const double w, const double Je, const Vector<double>& Nw, const Vector<double>& Nq,
28 const Array<double>& Nwx, const Array<double>& Nqx, const Array<double>& al, const Array<double>& yl,
29 const Array<double>& dl, const Array<double>& bfl, Array<double>& lR, Array3<double>& lK,
30 Array3<double>& lKd);
31
32void ustruct_2d_m(ComMod& com_mod, CepMod& cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq,
33 const int nFn, const double w, const double Je, const Vector<double>& Nw, const Vector<double>& Nq,
34 const Array<double>& Nwx, const Array<double>& al, const Array<double>& yl, const Array<double>& dl,
35 const Array<double>& bfl, const Array<double>& fN, const Vector<double>& ya_l, Array<double>& lR,
37
38void ustruct_3d_c(ComMod& com_mod, CepMod& cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq,
39 const double w, const double Je, const Vector<double>& Nw, const Vector<double>& Nq,
40 const Array<double>& Nwx, const Array<double>& Nqx, const Array<double>& al, const Array<double>& yl,
41 const Array<double>& dl, const Array<double>& bfl, Array<double>& lR, Array3<double>& lK,
42 Array3<double>& lKd);
43
44void ustruct_3d_m(ComMod& com_mod, CepMod& cep_mod, const bool vmsFlag, const int eNoNw, const int eNoNq,
45 const int nFn, const double w, const double Je, const Vector<double>& Nw, const Vector<double>& Nq,
46 const Array<double>& Nwx, const Array<double>& al, const Array<double>& yl, const Array<double>& dl,
47 const Array<double>& bfl, const Array<double>& fN, const Vector<double>& ya_l, Array<double>& lR,
49
50void ustruct_do_assem(ComMod& com_mod, const int d, const Vector<int>& eqN, const Array3<double>& lKd,
51 const Array3<double>& lK, const Array<double>& lR);
52
53void ustruct_r(ComMod& com_mod, const SolutionStates& solutions);
54
55};
56
57#endif
58
The Array3 template class implements a simple interface to 3D arrays.
Definition Array3.h:25
Definition CepMod.h:205
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition ComMod.h:1525
The Vector template class is used for storing int and double data.
Definition Vector.h:24
This is the container for a mesh or NURBS patch, those specific to NURBS are noted.
Definition ComMod.h:871
Holds solution state at old, current, and intermediate time levels.
Definition SolutionStates.h:39
bool constitutive_model_is_valid(consts::ConstitutiveModelType model)
Check is a constitutive model is valid for the ustruct equation.
Definition ustruct.cpp:188
void 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.
Definition ustruct.cpp:417
void ustruct_r(ComMod &com_mod, const SolutionStates &solutions)
Definition ustruct.cpp:1715
void 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.
Definition ustruct.cpp:104
void 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.
Definition ustruct.cpp:867
void 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)'.
Definition ustruct.cpp:1568
void 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.
Definition ustruct.cpp:621
void construct_usolid(ComMod &com_mod, CepMod &cep_mod, const mshType &lM, const SolutionStates &solutions)
Reproduces Fortran CONSTRUCT_uSOLID.
Definition ustruct.cpp:203
void 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.
Definition ustruct.cpp:1147