31 #ifndef OOMPH_TTIME_HARMONIC_LINEAR_ELASTICITY_ELEMENTS_HEADER 32 #define OOMPH_TTIME_HARMONIC_LINEAR_ELASTICITY_ELEMENTS_HEADER 37 #include <oomph-lib-config.h> 42 #include "../generic/nodes.h" 43 #include "../generic/oomph_utilities.h" 44 #include "../generic/Telements.h" 46 #include "../generic/error_estimator.h" 67 template <
unsigned DIM,
unsigned NNODE_1D>
104 void output(std::ostream &outfile,
const unsigned &nplot)
117 void output(FILE* file_pt,
const unsigned &n_plot)
141 return 2*(DIM + DIM*(DIM-1)/2);
149 unsigned num_entries=2*(DIM+((DIM*DIM)-DIM)/2);
150 if (flux.size()!=num_entries)
152 std::ostringstream error_message;
153 error_message <<
"The flux vector has the wrong number of entries, " 154 << flux.size() <<
", whereas it should be " 155 << num_entries << std::endl;
158 OOMPH_CURRENT_FUNCTION,
159 OOMPH_EXCEPTION_LOCATION);
171 for(
unsigned i=0;
i<DIM;
i++)
173 flux[icount]=strain(
i,
i).real();
175 flux[icount]=strain(
i,
i).imag();
180 for(
unsigned i=0;
i<DIM;
i++)
182 for(
unsigned j=
i+1;j<DIM;j++)
184 flux[icount]=strain(
i,j).real();
186 flux[icount]=strain(
i,j).imag();
203 template<
unsigned DIM,
unsigned NNODE_1D>
205 public virtual TElement<DIM-1,NNODE_1D>
220 template<
unsigned NNODE_1D>
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
void output(FILE *file_pt)
C-style output function:
Base class for finite elements that can compute the quantities that are required for the Z2 error est...
unsigned nrecovery_order()
Order of recovery shape functions for Z2 error estimation: Same order as shape functions.
unsigned nvertex_node() const
Number of vertex nodes in the element.
void output(std::ostream &outfile)
Broken assignment operator.
FaceGeometry()
Constructor: Call the constructor for the appropriate lower-dimensional TElement. ...
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
void output(std::ostream &outfile)
Output: x,y,[z],u_r,v_r,[w_r],u_i,v_i,[w_i].
FaceGeometry()
Constructor: Call the constructor for the appropriate lower-dimensional QElement. ...
unsigned num_Z2_flux_terms()
Number of 'flux' terms for Z2 error estimation.
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Get 'flux' for Z2 error recovery: Upper triangular entries in strain tensor.
void output(std::ostream &outfile, const unsigned &nplot)
Output function:
Node * vertex_node_pt(const unsigned &j) const
Pointer to the j-th vertex node in the element.
void get_strain(const Vector< double > &s, DenseMatrix< std::complex< double > > &strain) const
Return the strain tensor.
Class for dense matrices, storing all the values of the matrix as a pointer to a pointer with assorte...
TTimeHarmonicLinearElasticityElement(const TTimeHarmonicLinearElasticityElement< DIM, NNODE_1D > &dummy)
Broken copy constructor.
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function:
TTimeHarmonicLinearElasticityElement()
Constructor: Call constructors for TElement and TimeHarmonicLinearElasticity equations.