30 #ifndef OOMPH_BIHARMONIC_PROBLEM_HEADER 31 #define OOMPH_BIHARMONIC_PROBLEM_HEADER 35 #include <oomph-lib-config.h> 48 #include "../generic/problem.h" 49 #include "../generic/hijacked_elements.h" 50 #include "../meshes/hermite_element_quad_mesh.template.h" 51 #include "../meshes/hermite_element_quad_mesh.template.cc" 105 oomph_info <<
"self test passed" << std::endl;
109 oomph_info <<
"self test failed" << std::endl;
174 for (
unsigned i = 0;
i < n_bulk_element;
i++)
258 oomph_info <<
"self test passed" << std::endl;
262 oomph_info <<
"self test failed" << std::endl;
286 void impose_solid_boundary_on_edge(
const unsigned& b,
const double& psi = 0);
294 void impose_traction_free_edge(
const unsigned& b);
300 void impose_fluid_flow_on_edge(
const unsigned& b, FluidBCFctPt u_imposed_fn);
335 this->node_pt(0) = node_pt;
338 S_fixed_index = s_fixed_index;
347 void output(std::ostream &outfile,
const unsigned &n_plot) {}
359 void output(FILE* file_pt,
const unsigned &n_plot) {}
365 exact_soln_pt,
double& error,
double& norm) {}
377 fill_in_generic_residual_contribution_biharmonic_boundary(residuals,
389 fill_in_generic_residual_contribution_biharmonic_boundary(residuals,
397 virtual void fill_in_generic_residual_contribution_biharmonic_boundary(
Class of matrices containing doubles, and stored as a DenseMatrix<double>, but with solving functiona...
void output(std::ostream &outfile, const unsigned &n_plot)
Output function – does nothing.
GeneralisedAxisymAdvectionDiffusionSourceFctPt & source_fct_pt()
Access function: Pointer to source function.
void output_fluid_velocity(std::ostream &outfile, const unsigned &n_plot)
Output function – does nothing.
Information for documentation of results: Directory and file number to enable output in the form RESL...
A two dimensional Hermite bicubic element quadrilateral mesh for a topologically rectangular domain...
SourceFctPt & source_fct_pt()
Access functions for the source function pointer.
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Compute the elemental residual vector and jacobian matrix - wrapper function called by get_jacobian i...
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
void set_source_function(const BiharmonicSourceFctPt source_fct_pt)
Impose a load to the surface of the plate. note : MUST be called before neumann boundary conditions a...
void doc_solution(DocInfo &doc_info, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt=0)
documents the solution, and if an exact solution is provided, then the error between the numerical an...
unsigned long nelement() const
Return number of elements in the mesh.
void(* DirichletBCFctPt)(const double &s, double &u)
Definition of a dirichlet boundary condition function pointer. Takes the position along a boundary (s...
Mesh * bulk_element_mesh_pt()
Access function to the bulk element mesh pt.
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Function pointer for function that computes vector-valued steady "exact solution" as ...
void set_neumann_boundary_condition(const unsigned &b, BiharmonicFluxElement< 2 >::FluxFctPt flux0_fct_pt, BiharmonicFluxElement< 2 >::FluxFctPt flux1_fct_pt=0)
Imposes the prescribed Neumann BCs laplacian(u) (flux0_fct_pt) and dlaplacian(u)/dn (flux1_fct_pt) wi...
GeneralisedElement *& element_pt(const unsigned long &e)
Return pointer to element e.
Mesh * Face_element_mesh_pt
mesh for face elements
void actions_after_newton_solve()
action after solve
void actions_before_newton_solve()
actions before solve, performs self test
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
compute_error – does nothing
BiharmonicProblem()
Constructor.
BiharmonicFluidProblem()
constructor
void(* BiharmonicSourceFctPt)(const Vector< double > &x, double &f)
Definition of the Source Function.
void output(FILE *file_pt)
C-style output function – does nothing.
void build_global_mesh_and_assign_eqn_numbers()
Topologically Rectangular Domain - a domain dexcribing a topologically rectangular problem - primaril...
unsigned add_sub_mesh(Mesh *const &mesh_pt)
Add a submesh to the problem and return its number, i, by which it can be accessed via mesh_pt(i)...
void actions_after_newton_solve()
action after solve
void build_bulk_mesh(const unsigned n_x, const unsigned n_y, TopologicallyRectangularDomain *domain_pt, HermiteQuadMesh< BiharmonicElement< 2 > >::MeshSpacingFnPtr spacing_fn=0)
builds the bulk mesh on a prescribed domain with a node spacing defined by spacing fn with n_x by n_y...
Point equation element used to impose the traction free edge (i.e. du/dn = 0) on the boundary when dt...
BiharmonicFluidBoundaryElement(Node *node_pt, const unsigned s_fixed_index)
void set_dirichlet_boundary_condition(const unsigned &b, DirichletBCFctPt u_fn=0, DirichletBCFctPt dudn_fn=0)
Imposes the prescribed dirichlet BCs u (u_fn) and du/dn (dudn_fn) dirichlet BCs by 'pinning'...
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function – does nothing.
void build_global_mesh()
Build the global mesh by combining the all the submeshes. Note: The nodes boundary information refers...
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute the elemental residual vector - wrapper function called by get_residuals in GeneralisedElemen...
unsigned long assign_eqn_numbers(const bool &assign_local_eqn_numbers=true)
Assign all equation numbers for problem: Deals with global data (= data that isn't attached to any el...
virtual ~BiharmonicProblem()
Destructor. Delete the meshes.
unsigned self_test()
Self-test: Check meshes and global data. Return 0 for OK.
void actions_before_newton_solve()
actions before solve, performs self test
Biharmonic Fluid Problem Class - describes stokes flow in 2D. Developed for the topologically rectang...
Biharmonic Plate Problem Class - for problems where the load can be assumed to be acting normal to th...
void output(std::ostream &outfile)
Output function – does nothing.
Mesh * Bulk_element_mesh_pt
Mesh for BiharmonicElement<DIM> only - the block preconditioner assemble the global equation number t...