35#ifndef LEENEWMARKITERATIVE_H
36#define LEENEWMARKITERATIVE_H
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_one(
double,
double,
int)
const;
83 [[nodiscard]] vec update_by_mode_two(
double,
double,
int,
int);
84 [[nodiscard]] vec update_by_mode_three(
double,
double,
double);
85 [[nodiscard]] vec update_by_mode_four(
double,
double,
int,
int,
int,
int,
double);
87 void update_damping_force();
99 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:350
int initialize() override
Definition: LeeNewmarkIterative.cpp:340
void assemble_matrix() override
Definition: LeeNewmarkIterative.cpp:371
LeeNewmarkIterative(unsigned, std::vector< Mode > &&, double, double)
Definition: LeeNewmarkIterative.cpp:313
Type
Definition: LeeNewmarkIterative.h:44
int process_constraint_resistance() override
Definition: LeeNewmarkIterative.cpp:365
void print() override
Definition: LeeNewmarkIterative.cpp:397
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