54     for (
unsigned n = 0; n < n_node; n++)
 
   63                             OOMPH_CURRENT_FUNCTION,
 
   64                             OOMPH_EXCEPTION_LOCATION);
 
   69       unsigned ndim = node_pt->
ndim();
 
   78         throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
 
   79                             OOMPH_CURRENT_FUNCTION,
 
   80                             OOMPH_EXCEPTION_LOCATION);
 
   87       for (
unsigned i = 0; 
i < ndim; 
i++)
 
   90         for (
unsigned k = 0; k < ntype; k++)
 
   98       unsigned nval = node_pt->
nvalue();
 
   99       for (
unsigned ival = 0; ival < nval; ival++)
 
  109     for (
unsigned i = 0; 
i < Nelement; 
i++)
 
  118         throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
 
  119                             OOMPH_CURRENT_FUNCTION,
 
  120                             OOMPH_EXCEPTION_LOCATION);
 
  134         fsi_elem_pt->exclude_external_load_data();
 
  141       for (
unsigned j = 0; j < nint; j++)
 
  146         unsigned nval = data_pt->
nvalue();
 
  147         for (
unsigned ival = 0; ival < nval; ival++)
 
  159           "Automatic assignment of initial conditions doesn't work yet\n";
 
  161           "for elasticity elements with internal solid dofs (pressures)\n";
 
  164           error_message, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
 
  204     for (
unsigned n = 0; n < n_node; n++)
 
  213                             OOMPH_CURRENT_FUNCTION,
 
  214                             OOMPH_EXCEPTION_LOCATION);
 
  219       unsigned ndim = node_pt->
ndim();
 
  228         throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
 
  229                             OOMPH_CURRENT_FUNCTION,
 
  230                             OOMPH_EXCEPTION_LOCATION);
 
  238       for (
unsigned i = 0; 
i < ndim; 
i++)
 
  241         for (
unsigned k = 0; k < ntype; k++)
 
  249       unsigned nval = node_pt->
nvalue();
 
  250       for (
unsigned ival = 0; ival < nval; ival++)
 
  260     for (
unsigned i = 0; 
i < Nelement; 
i++)
 
  269         throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
 
  270                             OOMPH_CURRENT_FUNCTION,
 
  271                             OOMPH_EXCEPTION_LOCATION);
 
  280       for (
unsigned j = 0; j < next; j++)
 
  292       for (
unsigned j = 0; j < nint; j++)
 
  297         unsigned nval = data_pt->
nvalue();
 
  298         for (
unsigned ival = 0; ival < nval; ival++)
 
  311           "Automatic assignment of initial conditions doesn't work yet\n";
 
  313           "for elasticity elements with internal solid dofs (pressures)\n";
 
  316           error_message, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
 
  352     for (
unsigned n = 0; n < n_node; n++)
 
  361                             OOMPH_CURRENT_FUNCTION,
 
  362                             OOMPH_EXCEPTION_LOCATION);
 
  367       unsigned ndim = node_pt->
ndim();
 
  376         throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
 
  377                             OOMPH_CURRENT_FUNCTION,
 
  378                             OOMPH_EXCEPTION_LOCATION);
 
  385       for (
unsigned i = 0; 
i < ndim; 
i++)
 
  388         for (
unsigned k = 0; k < ntype; k++)
 
  400       unsigned nval = node_pt->
nvalue();
 
  401       for (
unsigned ival = 0; ival < nval; ival++)
 
  406           node_pt->
unpin(ival);
 
  414     for (
unsigned i = 0; 
i < Nelement; 
i++)
 
  423         throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
 
  424                             OOMPH_CURRENT_FUNCTION,
 
  425                             OOMPH_EXCEPTION_LOCATION);
 
  431         ->disable_solve_for_consistent_newmark_accel();
 
  439         fsi_elem_pt->include_external_load_data();
 
  446       for (
unsigned j = 0; j < next; j++)
 
  459       for (
unsigned j = 0; j < nint; j++)
 
  464         unsigned nval = data_pt->
nvalue();
 
  465         for (
unsigned ival = 0; ival < nval; ival++)
 
  470             data_pt->
unpin(ival);
 
  481           "Automatic assignment of initial conditions doesn't work yet\n";
 
  483           "for elasticity elements with internal solid dofs (pressures)\n";
 
  486           error_message, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
 
  542     double backup_time = 0.0;
 
  547     if (timestepper_pt != 0)
 
  584     if (timestepper_pt != 0)
 
  595     oomph_info << 
"Number of equations in big problem: " 
A class that represents a collection of data; each Data object may contain many different individual ...
void pin(const unsigned &i)
Pin the i-th stored variable.
void unpin(const unsigned &i)
Unpin the i-th stored variable.
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
bool is_pinned(const unsigned &i) const
Test whether the i-th variable is pinned (1: true; 0: false).
///////////////////////////////////////////////////////////////////// ///////////////////////////////...
////////////////////////////////////////////////////////////////////////// //////////////////////////...
unsigned nnodal_position_type() const
Return the number of coordinate types that the element requires to interpolate the geometry between t...
unsigned nexternal_data() const
Return the number of external data objects.
Data *& external_data_pt(const unsigned &i)
Return a pointer to i-th external data object.
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
unsigned ninternal_data() const
Return the number of internal data objects.
void flush_external_data()
Flush all external data.
unsigned add_external_data(Data *const &data_pt, const bool &fd=true)
Add a (pointer to an) external data object to the element and return its index (i....
TimeStepper *& time_stepper_pt()
Access function for pointer to time stepper: Null if object is not time-dependent.
GeneralisedElement *& element_pt(const unsigned long &e)
Return pointer to element e.
unsigned long nnode() const
Return number of nodes in the mesh.
Node *& node_pt(const unsigned long &n)
Return pointer to global node n.
unsigned long nelement() const
Return number of elements in the mesh.
unsigned ndim() const
Return (Eulerian) spatial dimension of the node.
An oomph-lib wrapper to the MPI_Comm communicator object. Just contains an MPI_Comm object (which is ...
An OomphLibError object which should be thrown when an run-time error is encountered....
////////////////////////////////////////////////////////////////// //////////////////////////////////...
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...
void assign_initial_values_impulsive()
Initialise data and nodal positions to simulate impulsive start from initial configuration/solution.
bool Problem_has_been_distributed
Has the problem been distributed amongst multiple processors?
OomphCommunicator * communicator_pt()
access function to the oomph-lib communicator
void newton_solve()
Use Newton method to solve the problem.
OomphCommunicator * Communicator_pt
The communicator for this problem.
bool problem_has_been_distributed()
Access to Problem_has_been_distributed flag.
Mesh *& mesh_pt()
Return a pointer to the global mesh.
double & time()
Return the current value of continuous time.
////////////////////////////////////////////////////////////////////// //////////////////////////////...
virtual bool has_internal_solid_data()
Return whether there is internal solid data (e.g. discontinuous solid pressure). At present,...
SolidInitialCondition *& solid_ic_pt()
Pointer to object that describes the initial condition.
void backup_original_state()
Backup original state of all data associated with mesh.
Vector< Vector< Data * > > Backup_ext_data
Vector of Vectors to store pointers to exernal data in the elements.
void setup_problem()
Change pinned status of all data associated with mesh so that the IC problem can be solved.
void set_static_initial_condition(Problem *problem_pt, Mesh *mesh_pt, SolidInitialCondition *ic_pt, const double &time)
Force the elastic structure that is discretised on the specified mesh to deform in the shape of the i...
Vector< int > Backup_pinned
Vector to store pinned status of all data.
void reset_original_state()
Reset original state of all data associated with mesh.
SolidInitialCondition * IC_pt
Pointer to initial condition object.
A class to specify the initial conditions for a solid body. Solid bodies are often discretised with H...
GeomObject *& geom_object_pt()
(Reference to) pointer to geom object that specifies the initial condition
unsigned & ic_time_deriv()
Which time derivative are we currently assigning?
A Class for nodes that deform elastically (i.e. position is an unknown in the problem)....
void pin_position(const unsigned &i)
Pin the nodal position.
void unpin_position(const unsigned &i)
Unpin the nodal position.
bool position_is_pinned(const unsigned &i)
Test whether the i-th coordinate is pinned, 0: false; 1: true.
////////////////////////////////////////////////////////////////////// //////////////////////////////...
Time *const  & time_pt() const
Access function for the pointer to time (const version)
double & time()
Return the current value of the continuous time.
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...
OomphInfo oomph_info
Single (global) instantiation of the OomphInfo object – this is used throughout the library as a "rep...