XC Open source finite element analysis program
Main Page
Modules
Namespaces
Classes
Files
File List
xc
src
utility
matrix
nDarray
Cosseratstraint.h
1
//----------------------------------------------------------------------------
2
// XC program; finite element analysis code
3
// for structural analysis and design.
4
//
5
// Copyright (C) Luis Claudio Pérez Tato
6
//
7
// This program derives from OpenSees <http://opensees.berkeley.edu>
8
// developed by the «Pacific earthquake engineering research center».
9
//
10
// Except for the restrictions that may arise from the copyright
11
// of the original program (see copyright_opensees.txt)
12
// XC is free software: you can redistribute it and/or modify
13
// it under the terms of the GNU General Public License as published by
14
// the Free Software Foundation, either version 3 of the License, or
15
// (at your option) any later version.
16
//
17
// This software is distributed in the hope that it will be useful, but
18
// WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
// GNU General Public License for more details.
21
//
22
//
23
// You should have received a copy of the GNU General Public License
24
// along with this program.
25
// If not, see <http://www.gnu.org/licenses/>.
26
//----------------------------------------------------------------------------
28
//################################################################################
29
//# COPYRIGHT (C): :-)) #
30
//# PROJECT: Object Oriented Finite Element Program #
31
//# PURPOSE: strain tensor with all necessery functions #
32
//# CLASS: Cosseratstraintensor #
33
//# #
34
//# VERSION: #
35
//# LANGUAGE: C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 ) #
36
//# TARGET OS: DOS || UNIX || . . . #
37
//# DESIGNER(S): Alireza Tabarrei, Boris Jeremic #
38
//# PROGRAMMER(S): Alireza Tabarrei,Boris Jeremic #
39
//# #
40
//# #
41
//# DATE: July 25 '93 #
42
//# UPDATE HISTORY: August 22-29 '94 choped to separate files and worked on #
43
//# const and & issues #
44
//# August 30-31 '94 added use_def_dim to full the CC, #
45
//# resolved problem with temoraries for #
46
//# operators + and - ( +=, -= ) #
47
//# #
48
//# #
49
//# #
50
//# #
51
//# #
52
//# #
53
//################################################################################
54
//*/
55
//
56
#ifndef COSSERATSTRAINTENSOR_HH
57
#define COSSERATSTRAINTENSOR_HH
58
59
#include "utility/matrix/nDarray/BJtensor.h"
60
61
namespace
XC
{
63
//
64
class
Cosseratstraintensor
:
public
BJtensor
65
{
66
public
:
// just send appropriate arguments to the base constructor
67
68
// Cosseratstraintensor (int rank_of_tensor=2, double initval=0.00000003141528);
69
Cosseratstraintensor
(
int
rank_of_tensor=2,
double
initval=0.0);
70
// default constructor // this is just PI/10^8 to check default constructor
71
72
Cosseratstraintensor
(
double
*values );
73
74
Cosseratstraintensor
(
double
initvalue );
75
76
Cosseratstraintensor
(
const
Cosseratstraintensor
& x );
77
Cosseratstraintensor
(
const
BJtensor
& x);
// copy-initializer
78
Cosseratstraintensor
(
const
nDarray
& x);
// copy-initializer
79
80
//~Cosseratstraintensor( );
81
82
Cosseratstraintensor
operator=(
const
Cosseratstraintensor
& rval);
// Cosseratstraintensor assignment
83
Cosseratstraintensor
operator=(
const
BJtensor
& rval);
// tensor assignment to Cosseratstraintensor
84
Cosseratstraintensor
operator=(
const
nDarray
& rval);
// nDarray assignment to Cosseratstraintensor
85
86
Cosseratstraintensor
deep_copy(
void
);
87
//.. Cosseratstraintensor * p_deep_copy(void);
88
89
//ini // use "from" and initialize already allocated strain tensor from "from" values
90
//ini void Initialize( const Cosseratstraintensor & from );
91
92
//___// operator() overloading for 3D Gauss points!
93
//___ Cosseratstraintensor & operator()(short ir, short is, short it,
94
//___ short tr, short ts, short tt );
95
96
double
Iinvariant1( )
const
;
97
double
Iinvariant2( )
const
;
98
double
Iinvariant3( )
const
;
99
100
double
Jinvariant1( )
const
;
101
double
Jinvariant2( )
const
;
102
double
Jinvariant3( )
const
;
103
104
double
equivalent( )
const
;
//Zhaohui added 09-02-2000
105
106
Cosseratstraintensor
deviator( )
const
;
107
Cosseratstraintensor
principal( )
const
;
108
109
double
sigma_octahedral( )
const
;
110
double
tau_octahedral( )
const
;
111
112
double
ksi( )
const
;
113
double
ro( )
const
;
114
double
theta( )
const
;
115
double
thetaPI( )
const
;
116
117
double
p_hydrostatic( )
const
;
118
double
q_deviatoric( )
const
;
119
120
121
Cosseratstraintensor
pqtheta2strain(
double
,
double
,
double
);
122
Cosseratstraintensor
evoleq2strain(
double
,
double
);
123
124
void
report(
const
std::string &)
const
;
125
void
reportshort(
const
std::string &)
const
;
126
127
//..// polinomial root solver friend functions definitions
128
//..public:
129
//..friend void laguer(complex *, int , complex *, double , int );
130
//..friend void zroots(complex *, int , complex *, int );
131
//..
132
};
133
}
// end of XC namespace
134
135
#endif
136
XC::Cosseratstraintensor
Definition:
Cosseratstraint.h:64
XC::BJtensor
Definition:
BJtensor.h:110
XC
================================================================================
Definition:
ContinuaReprComponent.h:34
XC::nDarray
Definition:
nDarray.h:158
Generated by
1.8.11