xc
src
domain
mesh
element
utils
damping
UDampingBase.h
1
// -*-c++-*-
2
//----------------------------------------------------------------------------
3
// XC program; finite element analysis code
4
// for structural analysis and design.
5
//
6
// Copyright (C) Luis C. Pérez Tato
7
//
8
// This program derives from OpenSees <http://opensees.berkeley.edu>
9
// developed by the «Pacific earthquake engineering research center».
10
//
11
// Except for the restrictions that may arise from the copyright
12
// of the original program (see copyright_opensees.txt)
13
// XC is free software: you can redistribute it and/or modify
14
// it under the terms of the GNU General Public License as published by
15
// the Free Software Foundation, either version 3 of the License, or
16
// (at your option) any later version.
17
//
18
// This software is distributed in the hope that it will be useful, but
19
// WITHOUT ANY WARRANTY; without even the implied warranty of
20
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
// GNU General Public License for more details.
22
//
23
//
24
// You should have received a copy of the GNU General Public License
25
// along with this program.
26
// If not, see <http://www.gnu.org/licenses/>.
27
//----------------------------------------------------------------------------
28
/* ****************************************************************** **
29
** OpenSees - Open System for Earthquake Engineering Simulation **
30
** Pacific Earthquake Engineering Research Center **
31
** **
32
** **
33
** (C) Copyright 1999, The Regents of the University of California **
34
** All Rights Reserved. **
35
** **
36
** Commercial use of this program without express permission of the **
37
** University of California, Berkeley, is strictly prohibited. See **
38
** file 'COPYRIGHT' in main directory for information on usage and **
39
** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
40
** **
41
** Developed by: **
42
** Frank McKenna (fmckenna@ce.berkeley.edu) **
43
** Gregory L. Fenves (fenves@ce.berkeley.edu) **
44
** Filip C. Filippou (filippou@ce.berkeley.edu) **
45
** **
46
** ****************************************************************** */
47
48
// $Revision: 1.0 $
49
// $Date: 2019-01-28 17:53:01 $
50
// $Source: /usr/local/cvs/OpenSees/SRC/damping/UniformDamping.h,v $
51
52
// Written: Yuli Huang (yulee@berkeley.edu)
53
// Created: 02/2020
54
// Revision: A
55
//
56
// Description: This file contains the definition for the UDampingBase class.
57
// UDampingBase provides the abstraction of an elemental damping imposition
58
// providing uniform damping over a frequency range
59
//
60
// Reference:
61
// Yuli Huang, Richard Sturt, Michael Willford,
62
// A damping model for nonlinear dynamic analysis providing uniform damping over a frequency range,
63
// Computers & Structures,
64
// Volume 212,
65
// 2019,
66
// Pages 101-109,
67
// ISSN 0045-7949,
68
// https://doi.org/10.1016/j.compstruc.2018.10.016
69
//
70
// Yuan Tian, Yuli Huang, Zhe Qu, Yifan Fei, Xinzheng Lu,
71
// High-performance uniform damping model for response history analysis in OpenSees,
72
// Journal of Earthquake Engineering,
73
// 2022,
74
// https://doi.org/10.1080/13632469.2022.2124557
75
//
76
// What: "@(#) UDampingBase.h, revA"
77
78
#ifndef UDampingBase_h
79
#define UDampingBase_h
80
81
#include "Damping.h"
82
#include "utility/matrix/Matrix.h"
83
84
namespace
XC
{
85
87
class
UDampingBase
:
public
Damping
88
{
89
protected
:
90
// internal data
91
int
nComp, nFilter;
92
Vector
omegac;
93
Matrix
qL, qLC;
94
Vector
qdC;
95
protected
:
96
int
sendData
(
Communicator
&);
97
int
recvData
(
const
Communicator
&);
98
public
:
99
UDampingBase
(
int
tag,
int
classTag,
double
ta,
double
td,
TimeSeries
*
fac
);
100
UDampingBase
(
int
tag,
int
classTag,
double
ta,
double
td,
TimeSeries
*fac,
int
nFilter,
const
Vector
&omegac);
101
102
103
int
setDomain(
Domain
*domain,
int
nComp);
104
105
int
commitState(
void
);
106
int
revertToLastCommit(
void
);
107
int
revertToStart(
void
);
108
};
109
}
// end of XC namespace
110
111
#endif
XC::Vector
Float vector abstraction.
Definition:
Vector.h:94
XC::Communicator
Communication parameters between processes.
Definition:
Communicator.h:66
XC::UDampingBase::recvData
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition:
UDampingBase.cc:137
XC::UDampingBase::sendData
int sendData(Communicator &)
Send object members through the communicator argument.
Definition:
UDampingBase.cc:125
XC::UDampingBase
Base class for user-defined and uniform damings.
Definition:
UDampingBase.h:87
XC::Damping::fac
TimeSeries * fac
damping variation in time.
Definition:
Damping.h:87
XC::Damping
Definition:
Damping.h:83
XC
Open source finite element program for structural analysis.
Definition:
ContinuaReprComponent.h:35
XC::TimeSeries
Time variation of loads.
Definition:
TimeSeries.h:85
XC::Matrix
Matrix of floats.
Definition:
Matrix.h:111
XC::Domain
Domain (mesh and boundary conditions) of the finite element model.
Definition:
Domain.h:117
Generated by
1.8.13