35#ifndef LEENEWMARKITERATIVE_H
36#define LEENEWMARKITERATIVE_H
59 const unsigned n_block{0};
61 std::vector<Mode> damping_mode;
63 shared_ptr<Factory<double>> factory =
nullptr;
65 shared_ptr<MetaMat<double>> current_mass =
nullptr;
66 shared_ptr<MetaMat<double>> current_stiffness =
nullptr;
68 unique_ptr<MetaMat<double>> worker =
nullptr;
70 void init_worker(
unsigned,
unsigned);
72 void assemble(
const shared_ptr<MetaMat<double>>&, uword, uword,
double)
const;
74 void assemble_mass(uword, uword,
double)
const;
75 void assemble_stiffness(uword, uword,
double)
const;
76 void assemble_mass(
const std::vector<sword>&,
const std::vector<sword>&,
const std::vector<double>&)
const;
77 void assemble_stiffness(
const std::vector<sword>&,
const std::vector<sword>&,
const std::vector<double>&)
const;
79 void formulate_block(sword&,
double,
double,
int)
const;
80 void formulate_block(sword&,
const std::vector<double>&,
const std::vector<double>&,
const std::vector<int>&)
const;
82 [[nodiscard]] vec update_by_mode_zero(
double,
double)
const;
83 [[nodiscard]] vec update_by_mode_one(
double,
double,
int);
84 [[nodiscard]] vec update_by_mode_two(
double,
double,
int,
int);
85 [[nodiscard]] vec update_by_mode_three(
double,
double,
double);
86 [[nodiscard]] vec update_by_mode_four(
double,
double,
int,
int,
int,
int,
double);
88 void update_damping_force();
100 void print()
override;
A LeeNewmarkIterative class defines a solver using Newmark algorithm with Lee damping model.
Definition LeeNewmarkIterative.h:42
int process_constraint() override
Definition LeeNewmarkIterative.cpp:388
int initialize() override
Definition LeeNewmarkIterative.cpp:378
void assemble_matrix() override
Definition LeeNewmarkIterative.cpp:409
LeeNewmarkIterative(unsigned, std::vector< Mode > &&, double, double)
Definition LeeNewmarkIterative.cpp:351
Type
Definition LeeNewmarkIterative.h:44
int process_constraint_resistance() override
Definition LeeNewmarkIterative.cpp:403
void print() override
Definition LeeNewmarkIterative.cpp:435
A Newmark class defines a solver using Newmark algorithm.
Definition Newmark.h:45
Definition LeeNewmarkIterative.h:52
double zeta
Definition LeeNewmarkIterative.h:55
double omega
Definition LeeNewmarkIterative.h:55
Type t
Definition LeeNewmarkIterative.h:53
vec p
Definition LeeNewmarkIterative.h:54