42#include "meshes/fish_mesh.h"
84template<
class ELEMENT>
179template<
class ELEMENT>
195 <<
"VARIABLES=\"load\",\"y<sub>circle</sub>\",\"u<sub>control</sub>\""
242 cout << std::endl <<
"Control node is located at: "
323template<
class ELEMENT>
337template<
class ELEMENT>
364 <<
" " << Doc_node_pt->value(0) << std::endl;
382template<
class ELEMENT>
392 if (CommandLineArgs::Argc>1)
394 problem.fish_mesh_pt()->max_permitted_error()=0.05;
395 problem.fish_mesh_pt()->min_permitted_error()=0.005;
399 problem.fish_mesh_pt()->max_permitted_error()=0.005;
400 problem.fish_mesh_pt()->min_permitted_error()=0.0005;
402 problem.fish_mesh_pt()->doc_adaptivity_targets(
cout);
418 if (CommandLineArgs::Argc>1)
nstep=1;
445template<
class ELEMENT>
454 if (CommandLineArgs::Argc>1)
456 problem.fish_mesh_pt()->max_permitted_error()=0.05;
457 problem.fish_mesh_pt()->min_permitted_error()=0.005;
459 problem.fish_mesh_pt()->doc_adaptivity_targets(
cout);
void demo_fish_poisson(const string &directory_name)
Demonstrate how to solve 2D Poisson problem in deformable fish-shaped domain with mesh adaptation.
Refineable Poisson problem in deformable fish-shaped domain. Template parameter identify the elements...
RefineableFishPoissonProblem(const bool &fix_position, const string &directory_name, const unsigned &i_case)
Constructor: Bool flag specifies if position of fish back is prescribed or computed from the coupled ...
virtual ~RefineableFishPoissonProblem()
Destructor.
double & load()
Return value of the "load" on the elastically supported ring that represents the fish's back.
double & y_c()
Return value of the vertical displacement of the ring that represents the fish's back.
bool Fix_position
Is the position of the fish back prescribed?
DocInfo & doc_info()
Access to DocInfo object.
void actions_before_newton_solve()
Update the problem specs before solve: Update nodal positions.
Node * Doc_node_pt
Node at which the solution of the Poisson equation is documented.
void doc_solution()
Doc the solution.
virtual ~RefineableFishPoissonProblem()
Destructor.
MacroElementNodeUpdateRefineableFishMesh< ELEMENT > * Fish_mesh_pt
Pointer to fish mesh.
AlgebraicRefineableFishMesh< ELEMENT > * fish_mesh_pt()
void actions_after_newton_solve()
Update the problem specs after solve (empty)
void actions_before_newton_convergence_check()
Update after Newton step: Update in response to possible changes in the wall shape.
Data * Load_pt
Pointer to data item that stores the "load" on the fish back.
ofstream Trace_file
Trace file.
Mesh * Fish_back_mesh_pt
Pointer to single-element mesh that stores the GeneralisedElement that represents the fish back.
DocInfo Doc_info
Doc info object.
MacroElementNodeUpdateRefineableFishMesh< ELEMENT > * fish_mesh_pt()
AlgebraicRefineableFishMesh< ELEMENT > * Fish_mesh_pt
Pointer to fish mesh.
GeneralCircle "upgraded" to a GeneralisedElement: Circular ring whose position is given by.
Namespace for const source term in Poisson equation.
void get_source(const Vector< double > &x, double &source)
Const source function.
double Strength
Strength of source function: default value 1.0.
void demo_elastic_fish_poisson(const string &directory_name)
Demonstrate how to solve coupled "elastic" 2D Poisson problem in deformable fish-shaped domain with m...
void demo_fish_poisson(const string &directory_name)
Demonstrate how to solve 2D Poisson problem in deformable fish-shaped domain with mesh adaptation.