![]() |
|
#include <elastic_problems.h>
Public Member Functions | |
SolidICProblem () | |
SolidICProblem (const SolidICProblem &)=delete | |
Broken copy constructor. More... | |
void | operator= (const SolidICProblem &)=delete |
Broken assignment operator. More... | |
void | actions_after_newton_solve () |
Update after solve (empty) More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve. (empty) More... | |
void | set_static_initial_condition (Problem *problem_pt, Mesh *mesh_pt, SolidInitialCondition *ic_pt, const double &time) |
void | set_static_initial_condition (Problem *problem_pt, Mesh *mesh_pt, SolidInitialCondition *ic_pt) |
template<class TIMESTEPPER > | |
void | set_newmark_initial_condition_directly (Problem *problem_pt, Mesh *mesh_pt, TIMESTEPPER *timestepper_pt, SolidInitialCondition *ic_pt, const double &dt) |
template<class TIMESTEPPER > | |
void | set_newmark_initial_condition_consistently (Problem *problem_pt, Mesh *mesh_pt, TIMESTEPPER *timestepper_pt, SolidInitialCondition *ic_pt, const double &dt, SolidFiniteElement::MultiplierFctPt multiplier_fct_pt=0) |
double & | max_residual_after_consistent_newton_ic () |
![]() | |
virtual void | debug_hook_fct (const unsigned &i) |
void | set_analytic_dparameter (double *const ¶meter_pt) |
void | unset_analytic_dparameter (double *const ¶meter_pt) |
bool | is_dparameter_calculated_analytically (double *const ¶meter_pt) |
void | set_analytic_hessian_products () |
void | unset_analytic_hessian_products () |
bool | are_hessian_products_calculated_analytically () |
void | set_pinned_values_to_zero () |
bool | distributed () const |
virtual void | actions_before_adapt () |
virtual void | actions_after_adapt () |
Actions that are to be performed after a mesh adaptation. More... | |
OomphCommunicator * | communicator_pt () |
access function to the oomph-lib communicator More... | |
const OomphCommunicator * | communicator_pt () const |
access function to the oomph-lib communicator, const version More... | |
Problem () | |
Problem (const Problem &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const Problem &)=delete |
Broken assignment operator. More... | |
virtual | ~Problem () |
Virtual destructor to clean up memory. More... | |
Mesh *& | mesh_pt () |
Return a pointer to the global mesh. More... | |
Mesh *const & | mesh_pt () const |
Return a pointer to the global mesh (const version) More... | |
Mesh *& | mesh_pt (const unsigned &imesh) |
Mesh *const & | mesh_pt (const unsigned &imesh) const |
Return a pointer to the i-th submesh (const version) More... | |
unsigned | nsub_mesh () const |
Return number of submeshes. More... | |
unsigned | add_sub_mesh (Mesh *const &mesh_pt) |
void | flush_sub_meshes () |
void | build_global_mesh () |
void | rebuild_global_mesh () |
LinearSolver *& | linear_solver_pt () |
Return a pointer to the linear solver object. More... | |
LinearSolver *const & | linear_solver_pt () const |
Return a pointer to the linear solver object (const version) More... | |
LinearSolver *& | mass_matrix_solver_for_explicit_timestepper_pt () |
LinearSolver * | mass_matrix_solver_for_explicit_timestepper_pt () const |
EigenSolver *& | eigen_solver_pt () |
Return a pointer to the eigen solver object. More... | |
EigenSolver *const & | eigen_solver_pt () const |
Return a pointer to the eigen solver object (const version) More... | |
Time *& | time_pt () |
Return a pointer to the global time object. More... | |
Time * | time_pt () const |
Return a pointer to the global time object (const version). More... | |
double & | time () |
Return the current value of continuous time. More... | |
double | time () const |
Return the current value of continuous time (const version) More... | |
TimeStepper *& | time_stepper_pt () |
const TimeStepper * | time_stepper_pt () const |
TimeStepper *& | time_stepper_pt (const unsigned &i) |
Return a pointer to the i-th timestepper. More... | |
ExplicitTimeStepper *& | explicit_time_stepper_pt () |
Return a pointer to the explicit timestepper. More... | |
unsigned long | set_timestepper_for_all_data (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data=false) |
virtual void | shift_time_values () |
Shift all values along to prepare for next timestep. More... | |
AssemblyHandler *& | assembly_handler_pt () |
Return a pointer to the assembly handler object. More... | |
AssemblyHandler *const & | assembly_handler_pt () const |
Return a pointer to the assembly handler object (const version) More... | |
double & | minimum_dt () |
Access function to min timestep in adaptive timestepping. More... | |
double & | maximum_dt () |
Access function to max timestep in adaptive timestepping. More... | |
unsigned & | max_newton_iterations () |
Access function to max Newton iterations before giving up. More... | |
void | problem_is_nonlinear (const bool &prob_lin) |
Access function to Problem_is_nonlinear. More... | |
double & | max_residuals () |
bool & | time_adaptive_newton_crash_on_solve_fail () |
Access function for Time_adaptive_newton_crash_on_solve_fail. More... | |
double & | newton_solver_tolerance () |
void | add_time_stepper_pt (TimeStepper *const &time_stepper_pt) |
void | set_explicit_time_stepper_pt (ExplicitTimeStepper *const &explicit_time_stepper_pt) |
void | initialise_dt (const double &dt) |
void | initialise_dt (const Vector< double > &dt) |
Data *& | global_data_pt (const unsigned &i) |
Return a pointer to the the i-th global data object. More... | |
void | add_global_data (Data *const &global_data_pt) |
void | flush_global_data () |
LinearAlgebraDistribution *const & | dof_distribution_pt () const |
Return the pointer to the dof distribution (read-only) More... | |
unsigned long | ndof () const |
Return the number of dofs. More... | |
unsigned | ntime_stepper () const |
Return the number of time steppers. More... | |
unsigned | nglobal_data () const |
Return the number of global data values. More... | |
unsigned | self_test () |
Self-test: Check meshes and global data. Return 0 for OK. More... | |
void | enable_store_local_dof_pt_in_elements () |
void | disable_store_local_dof_pt_in_elements () |
unsigned long | assign_eqn_numbers (const bool &assign_local_eqn_numbers=true) |
void | describe_dofs (std::ostream &out= *(oomph_info.stream_pt())) const |
void | enable_discontinuous_formulation () |
void | disable_discontinuous_formulation () |
void | get_dofs (DoubleVector &dofs) const |
void | get_dofs (const unsigned &t, DoubleVector &dofs) const |
Return vector of the t'th history value of all dofs. More... | |
void | set_dofs (const DoubleVector &dofs) |
Set the values of the dofs. More... | |
void | set_dofs (const unsigned &t, DoubleVector &dofs) |
Set the history values of the dofs. More... | |
void | set_dofs (const unsigned &t, Vector< double * > &dof_pt) |
void | add_to_dofs (const double &lambda, const DoubleVector &increment_dofs) |
Add lambda x incremenet_dofs[l] to the l-th dof. More... | |
double * | global_dof_pt (const unsigned &i) |
double & | dof (const unsigned &i) |
i-th dof in the problem More... | |
double | dof (const unsigned &i) const |
i-th dof in the problem (const version) More... | |
double *& | dof_pt (const unsigned &i) |
Pointer to i-th dof in the problem. More... | |
double * | dof_pt (const unsigned &i) const |
Pointer to i-th dof in the problem (const version) More... | |
virtual void | get_inverse_mass_matrix_times_residuals (DoubleVector &Mres) |
virtual void | get_dvaluesdt (DoubleVector &f) |
virtual void | get_residuals (DoubleVector &residuals) |
Get the total residuals Vector for the problem. More... | |
virtual void | get_jacobian (DoubleVector &residuals, DenseDoubleMatrix &jacobian) |
virtual void | get_jacobian (DoubleVector &residuals, CRDoubleMatrix &jacobian) |
virtual void | get_jacobian (DoubleVector &residuals, CCDoubleMatrix &jacobian) |
virtual void | get_jacobian (DoubleVector &residuals, SumOfMatrices &jacobian) |
void | get_fd_jacobian (DoubleVector &residuals, DenseMatrix< double > &jacobian) |
Get the full Jacobian by finite differencing. More... | |
void | get_derivative_wrt_global_parameter (double *const ¶meter_pt, DoubleVector &result) |
void | get_hessian_vector_products (DoubleVectorWithHaloEntries const &Y, Vector< DoubleVectorWithHaloEntries > const &C, Vector< DoubleVectorWithHaloEntries > &product) |
void | solve_eigenproblem (const unsigned &n_eval, Vector< std::complex< double >> &eigenvalue, Vector< DoubleVector > &eigenvector, const bool &steady=true) |
Solve the eigenproblem. More... | |
void | solve_eigenproblem (const unsigned &n_eval, Vector< std::complex< double >> &eigenvalue, const bool &steady=true) |
virtual void | get_eigenproblem_matrices (CRDoubleMatrix &mass_matrix, CRDoubleMatrix &main_matrix, const double &shift=0.0) |
void | assign_eigenvector_to_dofs (DoubleVector &eigenvector) |
Assign the eigenvector passed to the function to the dofs. More... | |
void | add_eigenvector_to_dofs (const double &epsilon, const DoubleVector &eigenvector) |
void | store_current_dof_values () |
Store the current values of the degrees of freedom. More... | |
void | restore_dof_values () |
Restore the stored values of the degrees of freedom. More... | |
void | enable_jacobian_reuse () |
void | disable_jacobian_reuse () |
Disable recycling of Jacobian in Newton iteration. More... | |
bool | jacobian_reuse_is_enabled () |
Is recycling of Jacobian in Newton iteration enabled? More... | |
bool & | use_predictor_values_as_initial_guess () |
void | newton_solve () |
Use Newton method to solve the problem. More... | |
void | enable_globally_convergent_newton_method () |
enable globally convergent Newton method More... | |
void | disable_globally_convergent_newton_method () |
disable globally convergent Newton method More... | |
void | newton_solve (unsigned const &max_adapt) |
void | steady_newton_solve (unsigned const &max_adapt=0) |
void | copy (Problem *orig_problem_pt) |
virtual Problem * | make_copy () |
virtual void | read (std::ifstream &restart_file, bool &unsteady_restart) |
virtual void | read (std::ifstream &restart_file) |
virtual void | dump (std::ofstream &dump_file) const |
void | dump (const std::string &dump_file_name) const |
void | delete_all_external_storage () |
virtual void | symmetrise_eigenfunction_for_adaptive_pitchfork_tracking () |
double * | bifurcation_parameter_pt () const |
void | get_bifurcation_eigenfunction (Vector< DoubleVector > &eigenfunction) |
void | activate_fold_tracking (double *const ¶meter_pt, const bool &block_solve=true) |
void | activate_bifurcation_tracking (double *const ¶meter_pt, const DoubleVector &eigenvector, const bool &block_solve=true) |
void | activate_bifurcation_tracking (double *const ¶meter_pt, const DoubleVector &eigenvector, const DoubleVector &normalisation, const bool &block_solve=true) |
void | activate_pitchfork_tracking (double *const ¶meter_pt, const DoubleVector &symmetry_vector, const bool &block_solve=true) |
void | activate_hopf_tracking (double *const ¶meter_pt, const bool &block_solve=true) |
void | activate_hopf_tracking (double *const ¶meter_pt, const double &omega, const DoubleVector &null_real, const DoubleVector &null_imag, const bool &block_solve=true) |
void | deactivate_bifurcation_tracking () |
void | reset_assembly_handler_to_default () |
Reset the system to the standard non-augemented state. More... | |
double | arc_length_step_solve (double *const ¶meter_pt, const double &ds, const unsigned &max_adapt=0) |
double | arc_length_step_solve (Data *const &data_pt, const unsigned &data_index, const double &ds, const unsigned &max_adapt=0) |
void | reset_arc_length_parameters () |
int & | sign_of_jacobian () |
void | explicit_timestep (const double &dt, const bool &shift_values=true) |
Take an explicit timestep of size dt. More... | |
void | unsteady_newton_solve (const double &dt) |
void | unsteady_newton_solve (const double &dt, const bool &shift_values) |
void | unsteady_newton_solve (const double &dt, const unsigned &max_adapt, const bool &first, const bool &shift=true) |
double | doubly_adaptive_unsteady_newton_solve (const double &dt, const double &epsilon, const unsigned &max_adapt, const bool &first, const bool &shift=true) |
double | doubly_adaptive_unsteady_newton_solve (const double &dt, const double &epsilon, const unsigned &max_adapt, const unsigned &suppress_resolve_after_spatial_adapt_flag, const bool &first, const bool &shift=true) |
double | adaptive_unsteady_newton_solve (const double &dt_desired, const double &epsilon) |
double | adaptive_unsteady_newton_solve (const double &dt_desired, const double &epsilon, const bool &shift_values) |
void | assign_initial_values_impulsive () |
void | assign_initial_values_impulsive (const double &dt) |
void | calculate_predictions () |
Calculate predictions. More... | |
void | enable_mass_matrix_reuse () |
void | disable_mass_matrix_reuse () |
bool | mass_matrix_reuse_is_enabled () |
Return whether the mass matrix is being reused. More... | |
void | refine_uniformly (const Vector< unsigned > &nrefine_for_mesh) |
void | refine_uniformly (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh) |
void | refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | refine_uniformly (DocInfo &doc_info) |
void | refine_uniformly_and_prune (DocInfo &doc_info) |
void | refine_uniformly () |
void | refine_uniformly (const unsigned &i_mesh, DocInfo &doc_info) |
Do uniform refinement for submesh i_mesh with documentation. More... | |
void | refine_uniformly (const unsigned &i_mesh) |
Do uniform refinement for submesh i_mesh without documentation. More... | |
void | p_refine_uniformly (const Vector< unsigned > &nrefine_for_mesh) |
void | p_refine_uniformly (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | p_refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh) |
void | p_refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | p_refine_uniformly (DocInfo &doc_info) |
void | p_refine_uniformly_and_prune (DocInfo &doc_info) |
void | p_refine_uniformly () |
void | p_refine_uniformly (const unsigned &i_mesh, DocInfo &doc_info) |
Do uniform p-refinement for submesh i_mesh with documentation. More... | |
void | p_refine_uniformly (const unsigned &i_mesh) |
Do uniform p-refinement for submesh i_mesh without documentation. More... | |
void | refine_selected_elements (const Vector< unsigned > &elements_to_be_refined) |
void | refine_selected_elements (const Vector< RefineableElement * > &elements_to_be_refined_pt) |
void | refine_selected_elements (const unsigned &i_mesh, const Vector< unsigned > &elements_to_be_refined) |
void | refine_selected_elements (const unsigned &i_mesh, const Vector< RefineableElement * > &elements_to_be_refined_pt) |
void | refine_selected_elements (const Vector< Vector< unsigned >> &elements_to_be_refined) |
void | refine_selected_elements (const Vector< Vector< RefineableElement * >> &elements_to_be_refined_pt) |
void | p_refine_selected_elements (const Vector< unsigned > &elements_to_be_refined) |
void | p_refine_selected_elements (const Vector< PRefineableElement * > &elements_to_be_refined_pt) |
void | p_refine_selected_elements (const unsigned &i_mesh, const Vector< unsigned > &elements_to_be_refined) |
void | p_refine_selected_elements (const unsigned &i_mesh, const Vector< PRefineableElement * > &elements_to_be_refined_pt) |
void | p_refine_selected_elements (const Vector< Vector< unsigned >> &elements_to_be_refined) |
void | p_refine_selected_elements (const Vector< Vector< PRefineableElement * >> &elements_to_be_refined_pt) |
unsigned | unrefine_uniformly () |
unsigned | unrefine_uniformly (const unsigned &i_mesh) |
void | p_unrefine_uniformly (DocInfo &doc_info) |
void | p_unrefine_uniformly (const unsigned &i_mesh, DocInfo &doc_info) |
Do uniform p-unrefinement for submesh i_mesh without documentation. More... | |
void | adapt (unsigned &n_refined, unsigned &n_unrefined) |
void | adapt () |
void | p_adapt (unsigned &n_refined, unsigned &n_unrefined) |
void | p_adapt () |
void | adapt_based_on_error_estimates (unsigned &n_refined, unsigned &n_unrefined, Vector< Vector< double >> &elemental_error) |
void | adapt_based_on_error_estimates (Vector< Vector< double >> &elemental_error) |
void | get_all_error_estimates (Vector< Vector< double >> &elemental_error) |
void | doc_errors (DocInfo &doc_info) |
Get max and min error for all elements in submeshes. More... | |
void | doc_errors () |
Get max and min error for all elements in submeshes. More... | |
void | enable_info_in_newton_solve () |
void | disable_info_in_newton_solve () |
Disable the output of information when in the newton solver. More... | |
![]() | |
ExplicitTimeSteppableObject () | |
Empty constructor. More... | |
ExplicitTimeSteppableObject (const ExplicitTimeSteppableObject &)=delete | |
Broken copy constructor. More... | |
void | operator= (const ExplicitTimeSteppableObject &)=delete |
Broken assignment operator. More... | |
virtual | ~ExplicitTimeSteppableObject () |
Empty destructor. More... | |
virtual void | actions_before_explicit_stage () |
virtual void | actions_after_explicit_stage () |
Private Member Functions | |
void | backup_original_state () |
Backup original state of all data associated with mesh. More... | |
void | reset_original_state () |
Reset original state of all data associated with mesh. More... | |
void | setup_problem () |
Private Attributes | |
SolidInitialCondition * | IC_pt |
Pointer to initial condition object. More... | |
Vector< int > | Backup_pinned |
Vector to store pinned status of all data. More... | |
Vector< Vector< Data * > > | Backup_ext_data |
Vector of Vectors to store pointers to exernal data in the elements. More... | |
double | Max_residual_after_consistent_newton_ic |
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// IC problem for an elastic body discretised on a given (sub)-mesh. We switch the elements' residuals and Jacobians to the system of equations that forces the wall shape to become that of a specified "initial condition object".
Boundary conditions for all data items associated with the mesh's elements' are temporarily overwritten so that all positional dofs (and only those!) become free while all other data (nodal data and the element's internal and external data) are either pinned (for nodal and internal data) or completely removed (for pointers to external data). The complete removal of the (pointers to the) external data is necessary because in FSI problems, positional data of certain elements can feature as external data of others. Hence pinning them in their incarnation as external data would also pin them in their incarnation as positional data.
All data and its pinned-status are restored at the end of the call to setup_ic().
|
inline |
Constructor. Initialise pointer to IC object to NULL. Create a dummy mesh that can be deleted when static problem finally goes out of scope at end of program execution.
Create dummy mesh
References Max_residual_after_consistent_newton_ic, and oomph::Problem::mesh_pt().
|
delete |
Broken copy constructor.
|
inlinevirtual |
|
inlinevirtual |
|
private |
Backup original state of all data associated with mesh.
Backup pinned status of all data associated with the mesh. Also backup the (pointers to the) elements' external data.
References Backup_ext_data, Backup_pinned, oomph::Mesh::element_pt(), oomph::GeneralisedElement::external_data_pt(), oomph::SolidFiniteElement::has_internal_solid_data(), i, oomph::GeneralisedElement::internal_data_pt(), oomph::Data::is_pinned(), j, k, oomph::Problem::mesh_pt(), n, oomph::Node::ndim(), oomph::Mesh::nelement(), oomph::GeneralisedElement::nexternal_data(), oomph::GeneralisedElement::ninternal_data(), oomph::FiniteElement::nnodal_position_type(), oomph::Mesh::nnode(), oomph::Mesh::node_pt(), oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::SolidNode::position_is_pinned(), and oomph::Global_string_for_annotation::string().
Referenced by set_newmark_initial_condition_consistently(), set_newmark_initial_condition_directly(), and set_static_initial_condition().
|
inline |
Max. tolerated residual after application of consistent Newmark IC. Used to check if we have specified the correct timescale ratio (non-dim density).
References Max_residual_after_consistent_newton_ic.
|
delete |
Broken assignment operator.
|
private |
Reset original state of all data associated with mesh.
Reset pinned status of all data and re-instate the pointers to the elements' external data.
References oomph::GeneralisedElement::add_external_data(), Backup_ext_data, Backup_pinned, oomph::Mesh::element_pt(), oomph::SolidFiniteElement::has_internal_solid_data(), i, oomph::GeneralisedElement::internal_data_pt(), j, k, oomph::Problem::mesh_pt(), n, oomph::Node::ndim(), oomph::Mesh::nelement(), oomph::GeneralisedElement::ninternal_data(), oomph::FiniteElement::nnodal_position_type(), oomph::Mesh::nnode(), oomph::Mesh::node_pt(), oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::SolidNode::pin_position(), oomph::Global_string_for_annotation::string(), and oomph::Data::unpin().
Referenced by set_newmark_initial_condition_consistently(), set_newmark_initial_condition_directly(), and set_static_initial_condition().
void oomph::SolidICProblem::set_newmark_initial_condition_consistently | ( | Problem * | problem_pt, |
Mesh * | wall_mesh_pt, | ||
TIMESTEPPER * | timestepper_pt, | ||
SolidInitialCondition * | ic_pt, | ||
const double & | dt, | ||
SolidFiniteElement::MultiplierFctPt | multiplier_fct_pt = 0 |
||
) |
Setup initial condition for time-integration with Newmark's method. Past displacements and velocities are assigned directly (consistent with the idea that a second order ODE can take ICs up to 1st order, while the history value for the previous acceleration is determined by the condition that the weak equation is satisfied at the initial time.) The multiplier function needs to specify the factor that multiplies the inertia terms – typically this is a constant, given by the ratio \( \Lambda^2 \) of the problem's intrinsic timescale to the time used to non-dimensionalise the equations. If the function (pointer) is not specified the multiplier is assumed to be equal to 1.0 – appropriate for a non-dimensionalisation based on the problem's intrinsic timescale.
Setup initial condition for time-integration with Newmark's method. Past displacements and velocities are assigned directly (consistent with the idea that a second order ODE can take ICs up to 1st order, while the history value for the previous acceleration is determined by the condition that that the weak equation is satisfied at the initial time. The multiplier function needs to specify the factor that multiplies the inertia terms – typically this is a constant, given by the ratio \( \Lambda^2 \) of the problem's intrinsic timescale to the time used to non-dimensionalise the equations. If the function (pointer) is not specified, the multiplier is assumed to be equal to 1.0 – appropriate for a non-dimensionalisation based on the problem's intrinsic timescale.
Pointer to member type solver
References oomph::Problem::assign_eqn_numbers(), backup_original_state(), oomph::Mesh::element_pt(), oomph::SolidFiniteElement::enable_solve_for_consistent_newmark_accel(), oomph::Data::eqn_number(), oomph::SolidInitialCondition::geom_object_pt(), oomph::Problem::get_residuals(), i, IC_pt, oomph::SolidInitialCondition::ic_time_deriv(), oomph::Problem::linear_solver_pt(), oomph::DoubleVector::max(), Max_residual_after_consistent_newton_ic, oomph::Problem::mesh_pt(), oomph::SolidFiniteElement::multiplier_fct_pt(), n, oomph::Mesh::nelement(), oomph::Problem::newton_solve(), oomph::Mesh::nnode(), oomph::Mesh::node_pt(), oomph::TimeStepper::nprev_values(), oomph::TimeStepper::ntstorage(), oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, problem, reset_original_state(), oomph::Data::set_value(), setup_problem(), oomph::SolidFiniteElement::solid_ic_pt(), oomph::LinearSolver::solve(), oomph::Time::time(), oomph::TimeStepper::time_pt(), oomph::GeomObject::time_stepper_pt(), oomph::Data::value(), and oomph::Data::value_pt().
void oomph::SolidICProblem::set_newmark_initial_condition_directly | ( | Problem * | problem_pt, |
Mesh * | wall_mesh_pt, | ||
TIMESTEPPER * | timestepper_pt, | ||
SolidInitialCondition * | ic_pt, | ||
const double & | dt | ||
) |
Setup initial condition for time-integration with Newmark's method. History values are assigned to that the velocity and accelerations determined by the Newmark scheme are exact at the initial time.
References oomph::Problem::assign_eqn_numbers(), backup_original_state(), oomph::SolidInitialCondition::geom_object_pt(), IC_pt, oomph::SolidInitialCondition::ic_time_deriv(), oomph::Problem::mesh_pt(), n, oomph::Problem::newton_solve(), oomph::Mesh::nnode(), OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, reset_original_state(), setup_problem(), oomph::Time::time(), oomph::TimeStepper::time_pt(), and oomph::GeomObject::time_stepper_pt().
|
inline |
Force the elastic structure that is discretised on the specified mesh to deform in the shape of the initial condition object (wrapper)
References oomph::Problem::mesh_pt(), set_static_initial_condition(), and oomph::Problem::time().
void oomph::SolidICProblem::set_static_initial_condition | ( | Problem * | problem_pt, |
Mesh * | wall_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 initial condition object (evaluated at the time specified)
IC problem for wall: Deform wall into the static initial shape described by the IC object at given time.
References oomph::Problem::assign_eqn_numbers(), oomph::Problem::assign_initial_values_impulsive(), backup_original_state(), oomph::Problem::Communicator_pt, oomph::Problem::communicator_pt(), oomph::SolidInitialCondition::geom_object_pt(), IC_pt, oomph::SolidInitialCondition::ic_time_deriv(), oomph::Problem::mesh_pt(), oomph::Problem::newton_solve(), oomph::oomph_info, reset_original_state(), setup_problem(), oomph::Problem::time(), oomph::Time::time(), oomph::TimeStepper::time_pt(), and oomph::GeomObject::time_stepper_pt().
Referenced by set_static_initial_condition().
|
private |
Change pinned status of all data associated with mesh so that the IC problem can be solved.
/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// Setup IC problem by:
References oomph::Problem::assign_eqn_numbers(), oomph::Mesh::element_pt(), oomph::GeneralisedElement::flush_external_data(), oomph::SolidFiniteElement::has_internal_solid_data(), i, IC_pt, oomph::GeneralisedElement::internal_data_pt(), j, k, oomph::Problem::mesh_pt(), n, oomph::Node::ndim(), oomph::Mesh::nelement(), oomph::GeneralisedElement::ninternal_data(), oomph::FiniteElement::nnodal_position_type(), oomph::Mesh::nnode(), oomph::Mesh::node_pt(), oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, oomph::Data::pin(), oomph::SolidFiniteElement::solid_ic_pt(), oomph::Global_string_for_annotation::string(), and oomph::SolidNode::unpin_position().
Referenced by set_newmark_initial_condition_consistently(), set_newmark_initial_condition_directly(), and set_static_initial_condition().
Vector of Vectors to store pointers to exernal data in the elements.
Referenced by backup_original_state(), and reset_original_state().
Vector to store pinned status of all data.
Referenced by backup_original_state(), and reset_original_state().
|
private |
Pointer to initial condition object.
Referenced by set_newmark_initial_condition_consistently(), set_newmark_initial_condition_directly(), set_static_initial_condition(), and setup_problem().
|
private |
Max. tolerated residual after application of consistent Newmark IC. Used to check if we have specified the correct timescale ratio (non-dim density).
Referenced by max_residual_after_consistent_newton_ic(), set_newmark_initial_condition_consistently(), and SolidICProblem().