suanPan
Newmark.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (C) 2017-2023 Theodore Chang
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  ******************************************************************************/
40 #ifndef NEWMARK_H
41 #define NEWMARK_H
42 
43 #include "Integrator.h"
44 
45 class Newmark : public ImplicitIntegrator {
46  const double beta;
47  const double gamma;
48 protected:
49  double C0 = 0., C1 = 0., C2 = 0., C3 = 0., C4 = 0., C5 = 0.;
50 public:
51  explicit Newmark(unsigned = 0, double = .25, double = .5);
52 
53  void assemble_resistance() override;
54  void assemble_matrix() override;
55 
56  int update_trial_status() override;
57 
58  void update_parameter(double) override;
59 
60  vec from_incre_velocity(const vec&, const uvec&) override;
61  vec from_incre_acceleration(const vec&, const uvec&) override;
62 
63  void print() override;
64 };
65 
66 #endif
67 
Definition: Integrator.h:149
A Newmark class defines a solver using Newmark algorithm.
Definition: Newmark.h:45
Newmark(unsigned=0, double=.25, double=.5)
Definition: Newmark.cpp:22
void assemble_matrix() override
Definition: Newmark.cpp:42
double C1
Definition: Newmark.h:49
vec from_incre_acceleration(const vec &, const uvec &) override
Definition: Newmark.cpp:75
double C4
Definition: Newmark.h:49
double C3
Definition: Newmark.h:49
void update_parameter(double) override
Definition: Newmark.cpp:81
double C2
Definition: Newmark.h:49
int update_trial_status() override
Definition: Newmark.cpp:59
double C5
Definition: Newmark.h:49
double C0
Definition: Newmark.h:49
vec from_incre_velocity(const vec &, const uvec &) override
Definition: Newmark.cpp:69
void assemble_resistance() override
Definition: Newmark.cpp:27
void print() override
Definition: Newmark.cpp:92