69 unsigned ndim = node_pt->
ndim();
78 throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
87 for (
unsigned i = 0;
i < ndim;
i++)
109 for (
unsigned i = 0;
i < Nelement;
i++)
118 throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
141 for (
unsigned j = 0;
j <
nint;
j++)
156 if (
elem_pt->has_internal_solid_data())
158 std::string error_message =
159 "Automatic assignment of initial conditions doesn't work yet\n";
161 "for elasticity elements with internal solid dofs (pressures)\n";
219 unsigned ndim = node_pt->
ndim();
228 throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
238 for (
unsigned i = 0;
i < ndim;
i++)
241 for (
unsigned k = 0;
k <
ntype;
k++)
260 for (
unsigned i = 0;
i < Nelement;
i++)
269 throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
280 for (
unsigned j = 0;
j <
next;
j++)
292 for (
unsigned j = 0;
j <
nint;
j++)
308 if (
elem_pt->has_internal_solid_data())
310 std::string error_message =
311 "Automatic assignment of initial conditions doesn't work yet\n";
313 "for elasticity elements with internal solid dofs (pressures)\n";
367 unsigned ndim = node_pt->
ndim();
376 throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
385 for (
unsigned i = 0;
i < ndim;
i++)
388 for (
unsigned k = 0;
k <
ntype;
k++)
414 for (
unsigned i = 0;
i < Nelement;
i++)
423 throw OomphLibError(
"Wasn't able to cast to SolidFiniteElement\n",
431 ->disable_solve_for_consistent_newmark_accel();
446 for (
unsigned j = 0;
j <
next;
j++)
459 for (
unsigned j = 0;
j <
nint;
j++)
478 if (
elem_pt->has_internal_solid_data())
480 std::string error_message =
481 "Automatic assignment of initial conditions doesn't work yet\n";
483 "for elasticity elements with internal solid dofs (pressures)\n";
572#if defined(OOMPH_HAS_MUMPS) && \
573 defined(OOMPH_ENABLE_MUMPS_AS_DEFAULT_LINEAR_SOLVER)
603 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).
Dummy mesh that can be created and deleted in SolidICProblem.
This is a base class for all SolidFiniteElements that participate in FSI computations....
unsigned nnodal_position_type() const
Return the number of coordinate types that the element requires to interpolate the geometry between t...
double size() const
Calculate the size of the element (length, area, volume,...) in Eulerian computational coordinates....
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.
Node *& node_pt(const unsigned long &n)
Return pointer to global node n.
unsigned long nnode() const
Return number of nodes in the mesh.
GeneralisedElement *& element_pt(const unsigned long &e)
Return pointer to element e.
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.
OomphCommunicator * communicator_pt()
access function to the oomph-lib communicator
bool Problem_has_been_distributed
Has the problem been distributed amongst multiple processors?
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.
LinearSolver *& linear_solver_pt()
Return a pointer to the linear solver object.
double & time()
Return the current value of continuous time.
Mesh *& mesh_pt()
Return a pointer to the global mesh.
SolidFiniteElement class.
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.
MumpsSolver * Mumps_solver_pt
Pointer to mumps solver.
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.
SuperLUSolver * SuperLU_solver_pt
Pointer to mumps solver.
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...
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.
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
OomphInfo oomph_info
Single (global) instantiation of the OomphInfo object – this is used throughout the library as a "rep...