27 #ifndef OOMPH_KIRCHHOFF_LOVE_SHELL_ELEMENTS_HEADER
28 #define OOMPH_KIRCHHOFF_LOVE_SHELL_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
36 #include "../generic/hermite_elements.h"
37 #include "../generic/geom_objects.h"
38 #include "../generic/fsi.h"
39 #include "../generic/stored_shape_function_elements.h"
40 #include "../generic/matrices.h"
124 const unsigned& intpt,
213 const double&
nu()
const
219 const double&
h()
const
270 void get_energy(
double& pot_en,
double& kin_en);
299 void output(std::ostream& outfile,
const unsigned& n_plot)
311 void output(FILE* file_pt,
const unsigned& n_plot)
325 double det =
A[0][0] *
A[1][1] -
A[0][1] *
A[1][0];
328 Aup[0][0] =
A[1][1] / det;
329 Aup[0][1] = -
A[0][1] / det;
330 Aup[1][0] = -
A[1][0] / det;
331 Aup[1][1] =
A[0][0] / det;
359 const unsigned& n_plot);
368 void output(std::ostream& outfile,
const unsigned& n_plot);
377 void output(FILE* file_pt,
const unsigned& n_plot);
443 const unsigned& intpt,
555 for (
unsigned i = 0;
i < 3;
i++)
589 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const;
644 "ClampedHermiteShellBoundaryConditionElement",
681 for (
unsigned i = 0;
i <
n;
i++)
683 for (
unsigned j = 0;
j <
m;
j++)
699 for (
unsigned i = 0;
i <
n;
i++)
701 for (
unsigned j = 0;
j <
m;
j++)
706 unsigned n1 = dpsids.
nindex1();
707 unsigned n2 = dpsids.
nindex2();
708 unsigned n3 = dpsids.
nindex3();
709 for (
unsigned i = 0;
i < n1;
i++)
711 for (
unsigned j = 0;
j < n2;
j++)
713 for (
unsigned k = 0;
k < n3;
k++)
715 dpsids(
i,
j,
k) = 0.0;
730 void output(std::ostream& outfile,
const unsigned& n_plot);
742 void output(FILE* file_pt,
const unsigned& n_plot)
761 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
void load(Archive &ar, ParticleHandler &handl)
Definition: Particles.h:21
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Definition: shell_elements.h:632
void output(std::ostream &outfile)
Definition: shell_elements.h:724
unsigned ndof_types() const
Definition: shell_elements.h:749
ClampedHermiteShellBoundaryConditionElement()
Broken empty constructor.
Definition: shell_elements.h:641
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Definition: shell_elements.cc:1789
void set_symmetry_line(const Vector< double > &normal_to_clamping_plane)
Set normal vector to clamping plane.
Definition: shell_elements.h:657
void dshape_local(const Vector< double > &s, Shape &psi, DShape &dpsids) const
Definition: shell_elements.h:694
void operator=(const ClampedHermiteShellBoundaryConditionElement &)=delete
Broken assignment operator.
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Fill in the element's contribution to its residual vector.
Definition: shell_elements.cc:1520
ClampedHermiteShellBoundaryConditionElement(const ClampedHermiteShellBoundaryConditionElement &dummy)=delete
Broken copy constructor.
void output(FILE *file_pt, const unsigned &n_plot)
Definition: shell_elements.h:742
Vector< double > Normal_to_clamping_plane
Normal vector to the clamping plane.
Definition: shell_elements.h:766
void shape(const Vector< double > &s, Shape &psi) const
Definition: shell_elements.h:676
void output(FILE *file_pt)
Definition: shell_elements.h:734
unsigned long nindex3() const
Return the range of index 3 of the derivatives of the shape functions.
Definition: shape.h:506
unsigned long nindex2() const
Return the range of index 2 of the derivatives of the shape functions.
Definition: shape.h:500
unsigned long nindex1() const
Return the range of index 1 of the derivatives of the shape functions.
Definition: shape.h:494
Definition: matrices.h:1271
void resize(const unsigned long &n)
Definition: matrices.h:498
Definition: shell_elements.h:392
DiagHermiteShellElement()
Constructor, there are no internal data points.
Definition: shell_elements.h:395
void fill_in_jacobian_from_external_interaction_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: element_with_external_element.h:345
Definition: shell_elements.h:432
void load_vector(const unsigned &intpt, const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load)
Definition: shell_elements.h:532
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Definition: shell_elements.cc:1398
void set_normal_pointing_out_of_fluid()
Definition: shell_elements.h:498
bool Compute_rate_of_work_by_load_with_fluid_load_only
Definition: shell_elements.h:466
virtual void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: shell_elements.h:564
FSIDiagHermiteShellElement()
Definition: shell_elements.h:476
~FSIDiagHermiteShellElement()
Destructor: empty.
Definition: shell_elements.h:487
void dposition_dlagrangian_at_local_coordinate(const Vector< double > &s, DenseMatrix< double > &drdxi) const
Definition: shell_elements.cc:1332
unsigned ndof_types() const
Definition: shell_elements.h:577
bool Normal_points_into_fluid
Boolean flag to indicate whether the normal is directed into the fluid.
Definition: shell_elements.h:462
void set_normal_pointing_into_fluid()
Definition: shell_elements.h:491
double fluid_load_rate_of_work()
Definition: shell_elements.h:513
virtual void load_vector_for_rate_of_work_computation(const unsigned &intpt, const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load)
Definition: shell_elements.h:442
void setup_fsi_wall_element(const unsigned &nlagr_solid, const unsigned &ndim_fluid)
Definition: fsi.cc:121
void fluid_load_vector(const unsigned &intpt, const Vector< double > &N, Vector< double > &load)
Definition: fsi.cc:162
int & face_index()
Definition: elements.h:4626
FaceGeometry()
Definition: shell_elements.h:417
Definition: elements.h:4998
Definition: elements.h:1313
void set_nodal_dimension(const unsigned &nodal_dim)
Definition: elements.h:1390
virtual void output(std::ostream &outfile)
Definition: elements.h:3050
Definition: geom_objects.h:101
Definition: shell_elements.h:347
void output(FILE *file_pt)
Overload the output function.
Definition: shell_elements.h:371
void output_with_time_dep_quantities(std::ostream &outfile, const unsigned &n_plot)
Output position veloc and accel.
Definition: shell_elements.cc:1233
void output(std::ostream &outfile)
Overload the output function.
Definition: shell_elements.h:362
HermiteShellElement()
Constructor, there are no internal data points.
Definition: shell_elements.h:350
Definition: shell_elements.h:49
void fill_in_contribution_to_residuals_shell(Vector< double > &residuals)
Return the residuals for the equations of KL shell theory.
Definition: shell_elements.cc:357
double *& lambda_sq_pt()
Return a pointer to timescale ratio (nondim density)
Definition: shell_elements.h:243
static void Zero_traction_fct(const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load)
Default load function (zero traction)
Definition: shell_elements.cc:50
const double & nu() const
Return the Poisson's ratio.
Definition: shell_elements.h:213
double *& h_pt()
Return a pointer to the non-dim wall thickness.
Definition: shell_elements.h:237
void output(FILE *file_pt, const unsigned &n_plot)
Generic FiniteElement output function.
Definition: shell_elements.h:311
bool Ignore_membrane_terms
Boolean flag to ignore membrane terms.
Definition: shell_elements.h:61
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Return the jacobian is calculated by finite differences by default,.
Definition: shell_elements.cc:744
double * H_pt
Pointer to dimensionless wall thickness.
Definition: shell_elements.h:67
void(*&)(const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load) load_vector_fct_pt()
Access to the load vector function pointer.
Definition: shell_elements.h:158
KirchhoffLoveShellEquations()
Constructor: Initialise physical parameter values to defaults.
Definition: shell_elements.h:136
void output(std::ostream &outfile, const unsigned &n_plot)
Generic FiniteElement output function.
Definition: shell_elements.h:299
double prestress(const unsigned &i, const unsigned &j)
Definition: shell_elements.h:195
static double Default_lambda_sq_value
Static default value for the timescale ratio (1.0 for natural scaling)
Definition: shell_elements.h:55
double calculate_contravariant(double A[2][2], double Aup[2][2])
Invert a DIM by DIM matrix.
Definition: shell_elements.h:321
DenseMatrix< double * > Prestress_pt
Definition: shell_elements.h:74
double * Lambda_sq_pt
Pointer to timescale ratio (non-dimensional density)
Definition: shell_elements.h:70
static double Zero_prestress
Static default for prestress (set to zero)
Definition: shell_elements.h:77
void get_energy(double &pot_en, double &kin_en)
Get potential (strain) and kinetic energy of the element.
Definition: shell_elements.cc:777
void output(std::ostream &outfile)
Generic FiniteElement output function.
Definition: shell_elements.h:293
void get_normal(const Vector< double > &s, Vector< double > &N)
Get normal vector.
Definition: shell_elements.cc:72
const double & lambda_sq() const
Return the timescale ratio (non-dimensional density)
Definition: shell_elements.h:225
double * Nu_pt
Pointer to Poisson's ratio.
Definition: shell_elements.h:64
static double Default_h_value
Static default value for the thickness ratio.
Definition: shell_elements.h:58
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Overload the standard fill in residuals contribution.
Definition: shell_elements.h:259
double load_rate_of_work()
Definition: shell_elements.cc:1080
GeomObject *& undeformed_midplane_pt()
Definition: shell_elements.h:250
void(* Load_vector_fct_pt)(const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load)
Definition: shell_elements.h:94
static double Default_nu_value
Static default value for the Poisson's ratio.
Definition: shell_elements.h:52
void set_prestress_pt(const unsigned &i, const unsigned &j, double *value_pt)
Definition: shell_elements.h:185
double *& nu_pt()
Return a pointer to the Poisson ratio.
Definition: shell_elements.h:231
virtual void load_vector(const unsigned &intpt, const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load)
Definition: shell_elements.h:172
std::pair< double, double > get_strain_and_bend(const Vector< double > &s, DenseDoubleMatrix &strain, DenseDoubleMatrix &bend)
Get strain and bending tensors.
Definition: shell_elements.cc:154
void enable_membrane_terms()
Set to renable the calculation of membrane terms (default)
Definition: shell_elements.h:207
void output(FILE *file_pt)
Generic FiniteElement output function.
Definition: shell_elements.h:305
void disable_membrane_terms()
Set to disable the calculation of membrane terms.
Definition: shell_elements.h:201
virtual void load_vector_for_rate_of_work_computation(const unsigned &intpt, const Vector< double > &xi, const Vector< double > &x, const Vector< double > &N, Vector< double > &load)
Definition: shell_elements.h:123
const double & h() const
Return the wall thickness to undeformed radius ratio.
Definition: shell_elements.h:219
GeomObject * Undeformed_midplane_pt
Definition: shell_elements.h:102
Definition: oomph_definitions.h:222
unsigned nindex1() const
Return the range of index 1 of the shape function object.
Definition: shape.h:259
unsigned nindex2() const
Return the range of index 2 of the shape function object.
Definition: shape.h:265
Definition: hermite_elements.h:570
Definition: elements.h:4914
Definition: elements.h:3561
Definition: hermite_elements.h:504
void output(std::ostream &outfile)
Overload the output function.
Definition: hermite_elements.cc:1072
@ N
Definition: constructor.cpp:22
RealScalar s
Definition: level1_cplx_impl.h:130
int * m
Definition: level2_cplx_impl.h:294
char char char int int * k
Definition: level2_impl.h:374
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172
void shape(const double &s, double *Psi)
Definition: shape.h:564
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2