|
void | operator() (SolidMesh *orig_mesh_pt, std::set< Node * > pinned_nodes) |
|
| ~LinearElasticitySmoothMesh () |
| Destructor (empty) More...
|
|
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 () |
|
|
typedef void(* | SpatialErrorEstimatorFctPt) (Mesh *&mesh_pt, Vector< double > &elemental_error) |
| Function pointer for spatial error estimator. More...
|
|
typedef void(* | SpatialErrorEstimatorWithDocFctPt) (Mesh *&mesh_pt, Vector< double > &elemental_error, DocInfo &doc_info) |
| Function pointer for spatial error estimator with doc. More...
|
|
bool | Shut_up_in_newton_solve |
|
static bool | Suppress_warning_about_actions_before_read_unstructured_meshes |
|
enum | Assembly_method {
Perform_assembly_using_vectors_of_pairs
, Perform_assembly_using_two_vectors
, Perform_assembly_using_maps
, Perform_assembly_using_lists
,
Perform_assembly_using_two_arrays
} |
| Enumerated flags to determine which sparse assembly method is used. More...
|
|
unsigned | setup_element_count_per_dof () |
|
virtual void | sparse_assemble_row_or_column_compressed (Vector< int * > &column_or_row_index, Vector< int * > &row_or_column_start, Vector< double * > &value, Vector< unsigned > &nnz, Vector< double * > &residual, bool compressed_row_flag) |
|
virtual void | actions_before_newton_solve () |
|
virtual void | actions_after_newton_solve () |
|
virtual void | actions_before_newton_convergence_check () |
|
virtual void | actions_before_newton_step () |
|
virtual void | actions_after_newton_step () |
|
virtual void | actions_before_implicit_timestep () |
|
virtual void | actions_after_implicit_timestep () |
|
virtual void | actions_after_implicit_timestep_and_error_estimation () |
|
virtual void | actions_before_explicit_timestep () |
| Actions that should be performed before each explicit time step. More...
|
|
virtual void | actions_after_explicit_timestep () |
| Actions that should be performed after each explicit time step. More...
|
|
virtual void | actions_before_read_unstructured_meshes () |
|
virtual void | actions_after_read_unstructured_meshes () |
|
virtual void | actions_after_change_in_global_parameter (double *const ¶meter_pt) |
|
virtual void | actions_after_change_in_bifurcation_parameter () |
|
virtual void | actions_after_parameter_increase (double *const ¶meter_pt) |
|
double & | dof_derivative (const unsigned &i) |
|
double & | dof_current (const unsigned &i) |
|
virtual void | set_initial_condition () |
|
virtual double | global_temporal_error_norm () |
|
unsigned | newton_solve_continuation (double *const ¶meter_pt) |
|
unsigned | newton_solve_continuation (double *const ¶meter_pt, DoubleVector &z) |
|
void | calculate_continuation_derivatives (double *const ¶meter_pt) |
|
void | calculate_continuation_derivatives (const DoubleVector &z) |
|
void | calculate_continuation_derivatives_fd (double *const ¶meter_pt) |
|
bool | does_pointer_correspond_to_problem_data (double *const ¶meter_pt) |
|
void | set_consistent_pinned_values_for_continuation () |
|
Vector< Problem * > | Copy_of_problem_pt |
|
std::map< double *, bool > | Calculate_dparameter_analytic |
|
bool | Calculate_hessian_products_analytic |
|
LinearAlgebraDistribution * | Dof_distribution_pt |
|
Vector< double * > | Dof_pt |
| Vector of pointers to dofs. More...
|
|
DoubleVectorWithHaloEntries | Element_count_per_dof |
|
double | Relaxation_factor |
|
double | Newton_solver_tolerance |
|
unsigned | Max_newton_iterations |
| Maximum number of Newton iterations. More...
|
|
unsigned | Nnewton_iter_taken |
|
Vector< double > | Max_res |
| Maximum residuals at start and after each newton iteration. More...
|
|
double | Max_residuals |
|
bool | Time_adaptive_newton_crash_on_solve_fail |
|
bool | Jacobian_reuse_is_enabled |
| Is re-use of Jacobian in Newton iteration enabled? Default: false. More...
|
|
bool | Jacobian_has_been_computed |
|
bool | Problem_is_nonlinear |
|
bool | Pause_at_end_of_sparse_assembly |
|
bool | Doc_time_in_distribute |
|
unsigned | Sparse_assembly_method |
|
unsigned | Sparse_assemble_with_arrays_initial_allocation |
|
unsigned | Sparse_assemble_with_arrays_allocation_increment |
|
Vector< Vector< unsigned > > | Sparse_assemble_with_arrays_previous_allocation |
|
double | Numerical_zero_for_sparse_assembly |
|
double | FD_step_used_in_get_hessian_vector_products |
|
bool | Mass_matrix_reuse_is_enabled |
|
bool | Mass_matrix_has_been_computed |
|
bool | Discontinuous_element_formulation |
|
double | Minimum_dt |
| Minimum desired dt: if dt falls below this value, exit. More...
|
|
double | Maximum_dt |
| Maximum desired dt. More...
|
|
double | DTSF_max_increase |
|
double | DTSF_min_decrease |
|
double | Minimum_dt_but_still_proceed |
|
bool | Scale_arc_length |
| Boolean to control whether arc-length should be scaled. More...
|
|
double | Desired_proportion_of_arc_length |
| Proportion of the arc-length to taken by the parameter. More...
|
|
double | Theta_squared |
|
int | Sign_of_jacobian |
| Storage for the sign of the global Jacobian. More...
|
|
double | Continuation_direction |
|
double | Parameter_derivative |
| Storage for the derivative of the global parameter wrt arc-length. More...
|
|
double | Parameter_current |
| Storage for the present value of the global parameter. More...
|
|
bool | Use_continuation_timestepper |
| Boolean to control original or new storage of dof stuff. More...
|
|
unsigned | Dof_derivative_offset |
|
unsigned | Dof_current_offset |
|
Vector< double > | Dof_derivative |
| Storage for the derivative of the problem variables wrt arc-length. More...
|
|
Vector< double > | Dof_current |
| Storage for the present values of the variables. More...
|
|
double | Ds_current |
| Storage for the current step value. More...
|
|
unsigned | Desired_newton_iterations_ds |
|
double | Minimum_ds |
| Minimum desired value of arc-length. More...
|
|
bool | Bifurcation_detection |
| Boolean to control bifurcation detection via determinant of Jacobian. More...
|
|
bool | Bisect_to_find_bifurcation |
| Boolean to control wheter bisection is used to located bifurcation. More...
|
|
bool | First_jacobian_sign_change |
| Boolean to indicate whether a sign change has occured in the Jacobian. More...
|
|
bool | Arc_length_step_taken |
| Boolean to indicate whether an arc-length step has been taken. More...
|
|
bool | Use_finite_differences_for_continuation_derivatives |
|
OomphCommunicator * | Communicator_pt |
| The communicator for this problem. More...
|
|
bool | Always_take_one_newton_step |
|
double | Timestep_reduction_factor_after_nonconvergence |
|
bool | Keep_temporal_error_below_tolerance |
|
static ContinuationStorageScheme | Continuation_time_stepper |
| Storage for the single static continuation timestorage object. More...
|
|
template<class LINEAR_ELASTICITY_ELEMENT>
class oomph::LinearElasticitySmoothMesh< LINEAR_ELASTICITY_ELEMENT >
/////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// Auxiliary Problem to smooth a SolidMesh by adjusting the internal nodal positions by solving a LINEAR solid mechanics problem for the nodal displacements between the specified displacements of certain pinned nodes (usually located on boundaries). The template parameter specifies the linear elasticity element that must have the same shape (geometric element type) as the elements contained in the mesh that's to be smoothed. So, e.g. for the ten-noded three-dimensional tetrahedral TTaylorHoodElement<3>, it would be a TLinearElasticityElement<3,3>, etc. Important assumptions:
- It is important that the Lagrangian coordinates of all nodes still indicate their original position, i.e. their position before (some of) them were moved to their new position.
- It is assumed that in its original state, the mesh does not contain any inverted elements.