27 #ifndef OOMPH_AXISYM_DISPL_BASED_FOEPPLVONKARMAN_ELEMENTS_HEADER
28 #define OOMPH_AXISYM_DISPL_BASED_FOEPPLVONKARMAN_ELEMENTS_HEADER
33 #include <oomph-lib-config.h>
37 #include "../generic/nodes.h"
38 #include "../generic/Qelements.h"
39 #include "../generic/oomph_utilities.h"
70 const double&
nu()
const
75 std::stringstream error_stream;
76 error_stream <<
"Nu has not yet been set!" << std::endl;
91 const double&
eta()
const
119 const unsigned n_plot = 5;
125 void output(std::ostream& outfile,
const unsigned& n_plot);
130 const unsigned n_plot = 5;
136 void output(FILE* file_pt,
const unsigned& n_plot);
140 const unsigned& n_plot,
147 std::ostream& outfile,
148 const unsigned& n_plot,
153 "There is no time-dependent output_fct() for Foeppl von Karman"
174 "There is no time-dependent compute_error() for Foeppl von Karman"
198 double& pressure)
const
208 (*Pressure_fct_pt)(
r, pressure);
217 const unsigned n_node =
nnode();
233 for (
unsigned l = 0; l < n_node; l++)
235 gradient[0] += this->
nodal_value(l, w_nodal_index) * dpsidr(l, 0);
252 const unsigned n_node =
nnode();
264 double interpolated_w = 0.0;
267 for (
unsigned l = 0; l < n_node; l++)
269 interpolated_w += this->
nodal_value(l, w_nodal_index) * psi[l];
272 return (interpolated_w);
280 const unsigned n_node =
nnode();
292 double interpolated_u = 0.0;
295 for (
unsigned l = 0; l < n_node; l++)
297 interpolated_u += this->
nodal_value(l, u_nodal_index) * psi[l];
300 return (interpolated_u);
308 double& sigma_phi_phi)
const;
331 unsigned total_fvk_nodal_indices = 3;
334 unsigned n_node =
nnode();
337 for (
unsigned index = first_fvk_nodal_index + 2;
338 index < first_fvk_nodal_index + total_fvk_nodal_indices;
342 for (
unsigned inod = 0; inod < n_node; inod++)
359 DShape& dtestdr)
const = 0;
369 DShape& dtestdr)
const = 0;
400 template<
unsigned NNODE_1D>
402 :
public virtual QElement<1, NNODE_1D>,
442 void output(std::ostream& outfile,
const unsigned& n_plot)
456 void output(FILE* file_pt,
const unsigned& n_plot)
464 const unsigned& n_plot,
468 outfile, n_plot, exact_soln_pt);
475 const unsigned& n_plot,
480 outfile, n_plot, time, exact_soln_pt);
512 template<
unsigned NNODE_1D>
513 double AxisymFoepplvonKarmanElement<
522 const double J = this->dshape_eulerian(
s, psi, dpsidr);
539 template<
unsigned NNODE_1D>
548 const double J = this->dshape_eulerian_at_knot(ipt, psi, dpsidr);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
Definition: axisym_displ_based_fvk_elements.h:404
void output(FILE *file_pt, const unsigned &n_plot)
Definition: axisym_displ_based_fvk_elements.h:456
double dshape_and_dtest_eulerian_axisym_fvk(const Vector< double > &s, Shape &psi, DShape &dpsidr, Shape &test, DShape &dtestdr) const
Definition: axisym_displ_based_fvk_elements.h:514
void output(FILE *file_pt)
Definition: axisym_displ_based_fvk_elements.h:449
double dshape_and_dtest_eulerian_at_knot_axisym_fvk(const unsigned &ipt, Shape &psi, DShape &dpsidr, Shape &test, DShape &dtestdr) const
Definition: axisym_displ_based_fvk_elements.h:541
void output_fct(std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Definition: axisym_displ_based_fvk_elements.h:474
void output(std::ostream &outfile, const unsigned &n_plot)
Definition: axisym_displ_based_fvk_elements.h:442
AxisymFoepplvonKarmanElement(const AxisymFoepplvonKarmanElement< NNODE_1D > &dummy)=delete
Broken copy constructor.
void output(std::ostream &outfile)
Definition: axisym_displ_based_fvk_elements.h:435
static const unsigned Initial_Nvalue
Set the data for the number of Variables at each node - 3.
Definition: axisym_displ_based_fvk_elements.h:408
unsigned required_nvalue(const unsigned &n) const
Definition: axisym_displ_based_fvk_elements.h:427
void operator=(const AxisymFoepplvonKarmanElement< NNODE_1D > &)=delete
Broken assignment operator.
AxisymFoepplvonKarmanElement()
Definition: axisym_displ_based_fvk_elements.h:413
void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Definition: axisym_displ_based_fvk_elements.h:463
Definition: axisym_displ_based_fvk_elements.h:51
double * Nu_pt
Pointer to Poisson's ratio.
Definition: axisym_displ_based_fvk_elements.h:378
AxisymFoepplvonKarmanPressureFctPt pressure_fct_pt() const
Access function: Pointer to pressure function. Const version.
Definition: axisym_displ_based_fvk_elements.h:187
AxisymFoepplvonKarmanPressureFctPt Pressure_fct_pt
Pointer to pressure function:
Definition: axisym_displ_based_fvk_elements.h:375
static double Default_Physical_Constant_Value
Default value for physical constants.
Definition: axisym_displ_based_fvk_elements.h:386
void operator=(const AxisymFoepplvonKarmanEquations &)=delete
Broken assignment operator.
virtual void output_fct(std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Definition: axisym_displ_based_fvk_elements.h:146
void output(std::ostream &outfile)
Output with default number of plot points.
Definition: axisym_displ_based_fvk_elements.h:117
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Fill in the residuals with this element's contribution.
Definition: axisym_displ_based_fvk_elements.cc:45
bool interpolated_stress(const Vector< double > &s, double &sigma_r_r, double &sigma_phi_phi) const
Definition: axisym_displ_based_fvk_elements.cc:234
void output(FILE *file_pt)
C_style output with default number of plot points.
Definition: axisym_displ_based_fvk_elements.h:128
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Dummy, time dependent error checker.
Definition: axisym_displ_based_fvk_elements.h:167
unsigned self_test()
Self-test: Return 0 for OK.
Definition: axisym_displ_based_fvk_elements.cc:208
double * Eta_pt
Pointer to FvK parameter.
Definition: axisym_displ_based_fvk_elements.h:372
virtual double dshape_and_dtest_eulerian_at_knot_axisym_fvk(const unsigned &ipt, Shape &psi, DShape &dpsidr, Shape &test, DShape &dtestdr) const =0
virtual unsigned nodal_index_fvk(const unsigned &i=0) const
Definition: axisym_displ_based_fvk_elements.h:111
void(* AxisymFoepplvonKarmanPressureFctPt)(const double &r, double &f)
Definition: axisym_displ_based_fvk_elements.h:55
void get_gradient_of_deflection(const Vector< double > &s, Vector< double > &gradient) const
Get gradient of deflection: gradient[i] = dw/dr_i */.
Definition: axisym_displ_based_fvk_elements.h:213
AxisymFoepplvonKarmanPressureFctPt & pressure_fct_pt()
Access function: Pointer to pressure function.
Definition: axisym_displ_based_fvk_elements.h:181
AxisymFoepplvonKarmanEquations()
Definition: axisym_displ_based_fvk_elements.h:60
virtual double dshape_and_dtest_eulerian_axisym_fvk(const Vector< double > &s, Shape &psi, DShape &dpsidr, Shape &test, DShape &dtestdr) const =0
bool Linear_bending_model
Definition: axisym_displ_based_fvk_elements.h:382
const double & eta() const
FvK parameter.
Definition: axisym_displ_based_fvk_elements.h:91
void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output exact soln: r,w_exact at n_plot plot points.
Definition: axisym_displ_based_fvk_elements.cc:385
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Get error against and norm of exact solution.
Definition: axisym_displ_based_fvk_elements.cc:433
void use_linear_bending_model()
Definition: axisym_displ_based_fvk_elements.h:321
double interpolated_u_fvk(const Vector< double > &s) const
Return FE representation of radial displacement.
Definition: axisym_displ_based_fvk_elements.h:277
double interpolated_w_fvk(const Vector< double > &s) const
Return FE representation of transverse displacement.
Definition: axisym_displ_based_fvk_elements.h:249
virtual void get_pressure_fvk(const unsigned &ipt, const double &r, double &pressure) const
Definition: axisym_displ_based_fvk_elements.h:196
double *& eta_pt()
Pointer to FvK parameter.
Definition: axisym_displ_based_fvk_elements.h:97
AxisymFoepplvonKarmanEquations(const AxisymFoepplvonKarmanEquations &dummy)=delete
Broken copy constructor.
const double & nu() const
Poisson's ratio.
Definition: axisym_displ_based_fvk_elements.h:70
double *& nu_pt()
Pointer to Poisson's ratio.
Definition: axisym_displ_based_fvk_elements.h:85
void pin(const unsigned &i)
Pin the i-th stored variable.
Definition: nodes.h:385
Definition: elements.h:1313
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Definition: elements.h:2175
double nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2593
virtual void shape(const Vector< double > &s, Shape &psi) const =0
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Definition: elements.h:1765
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3298
Definition: oomph_definitions.h:222
Definition: Qelements.h:459
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
RealScalar s
Definition: level1_cplx_impl.h:130
int error
Definition: calibrate.py:297
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
Definition: indexed_view.cpp:20
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86