46 const std::string & name_in,
47 const unsigned int number_in) :
49 _a_0 (1./(_default_alpha*_default_timestep*_default_timestep)),
50 _a_1 (_default_delta/(_default_alpha*_default_timestep)),
51 _a_2 (1./(_default_alpha*_default_timestep)),
52 _a_3 (1./(2.*_default_alpha)-1.),
53 _a_4 (_default_delta/_default_alpha -1.),
54 _a_5 (_default_timestep/2.*(_default_delta/_default_alpha-2.)),
55 _a_6 (_default_timestep*(1.-_default_delta)),
56 _a_7 (_default_delta*_default_timestep),
57 _finished_assemble (false)
130 libmesh_not_implemented();
159 LOG_SCOPE(
"initial_conditions ()",
"NewmarkSystem");
192 LOG_SCOPE(
"update_rhs ()",
"NewmarkSystem");
225 LOG_SCOPE(
"update_u_v_a ()",
"NewmarkSystem");
258 libmesh_assert_not_equal_to (delta_T, 0.);
273 _a_0 = 1./(alpha*delta_T*delta_T);
274 _a_1 = delta/(alpha*delta_T);
275 _a_2 = 1./(alpha*delta_T);
276 _a_3 = 1./(2.*alpha)-1.;
277 _a_4 = delta/alpha -1.;
278 _a_5 = delta_T/2.*(delta/alpha-2.);
279 _a_6 = delta_T*(1.-delta);
280 _a_7 = delta*delta_T;
virtual void assemble() override
Manages multiples systems of equations.
void set_newmark_parameters(const Real delta_T=_default_timestep, const Real alpha=_default_alpha, const Real delta=_default_delta)
const SparseMatrix< Number > & get_matrix(const std::string &mat_name) const
Manages consistently variables, degrees of freedom, coefficient vectors, matrices and linear solvers ...
virtual void add_vector(const T *v, const std::vector< numeric_index_type > &dof_indices)
const EquationSystems & get_equation_systems() const
SparseMatrix< Number > & add_matrix(const std::string &mat_name)
NumericVector< Number > * rhs
virtual void user_initialization()
virtual void assemble() override
virtual void add(const numeric_index_type i, const numeric_index_type j, const T value)=0
virtual void clear() override
virtual void scale(const T factor)=0
NumericVector< Number > & add_vector(const std::string &vec_name, const bool projections=true, const ParallelType type=PARALLEL)
virtual void reinit() override
const NumericVector< Number > & get_vector(const std::string &vec_name) const
std::unique_ptr< NumericVector< Number > > solution
static const Real _default_delta
void initial_conditions()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
T & set(const std::string &)
SparseMatrix< Number > * matrix
static const Real _default_timestep
NewmarkSystem(EquationSystems &es, const std::string &name, const unsigned int number)
static const Real _default_alpha
virtual void clear() override
virtual void add(const numeric_index_type i, const T value)=0