19 STATE E2 , STATE ni1 , STATE ni2 , STATE G12 , STATE G13 ,
21 int camadaref,
int camadaatual) :
23 TPZMatPlaca2(num, h, f, E1 , E2 , ni1 , ni2 , G12 , G13 ,
24 G23 , naxes, xf), fT(6,6,0.) {
37 int icR(camadaref), icA(camadaatual), icC;
44 int imin,imax,idif,sign,i,j;
58 for (i=1; i<=idif; i++) {
61 fT(0,j+1) = sign*esp[icC];
62 fT(1,j)=-sign*esp[icC];
66 fT(0,j+1)=-f+sign*esp[icA]/2.0;
67 fT(1,j )= f-sign*esp[icA]/2.0;
99 Bx0MC.Transpose(&B0xMC);
100 By0MC.Transpose(&B0yMC);
108 for (i=0; i<imax; i++){
137 ofstream out(
"saida.dat");
142 Temp=
fKxxR - Transp;
143 Temp.
Print(
"fKxxR - fKxxR^t",out);
145 fKyyR.Transpose(&Transp);
146 Temp= fKyyR - Transp;
147 Temp.Print(
"fKyyR - fKyyR^t",out);
149 fKyxR.Transpose(&Transp);
150 Temp= fKxyR - Transp;
151 Temp.Print(
"fKxyR - fKyxR^t",out);
153 fKxyR.Transpose(&Transp);
154 Temp= fKyxR - Transp;
155 Temp.Print(
"fKyxR - fKxyR^t",out);
157 fB0xR.Transpose(&Transp);
158 Temp= fBx0R - Transp;
159 Temp.Print(
"fBx0R - fB0xR^t",out);
161 fBx0R.Transpose(&Transp);
162 Temp= fB0xR - Transp;
163 Temp.Print(
"fB0xR - fBx0R^t",out);
165 fB0yR.Transpose(&Transp);
166 Temp= fBy0R - Transp;
167 Temp.Print(
"fBy0R - fB0yR^t",out);
169 fBy0R.Transpose(&Transp);
170 Temp= fB0yR - Transp;
171 Temp.Print(
"fB0yR - fKy0R^t",out);
173 fB00R.Transpose(&Transp);
174 Temp= fB00R - Transp;
175 Temp.Print(
"fB00R - fB00R^t",out);
182 if(var == 2 || var ==3 || var == 4) {
194 for(idf=0; idf<
fIdfMax; idf++) {
198 for(jdf=0; jdf<
fIdfMax; jdf++) {
199 Soln[
idf] +=
fRmat(idf,jdf)*Sol[jdf];
200 DSolnax(0,idf) +=
fRmat(idf,jdf)*DSol(0,jdf);
201 DSolnax(1,idf) +=
fRmat(idf,jdf)*DSol(1,jdf);
206 Rmatan(0,0)= axes(0,0)*
fnaxes(0,0) + axes(0,1)*
fnaxes(0,1) + axes(0,2)*
fnaxes(0,2);
207 Rmatan(0,1)= axes(0,0)*
fnaxes(1,0) + axes(0,1)*
fnaxes(1,1) + axes(0,2)*
fnaxes(1,2);
208 Rmatan(1,0)= axes(1,0)*
fnaxes(0,0) + axes(1,1)*
fnaxes(0,1) + axes(1,2)*
fnaxes(0,2);
209 Rmatan(1,1)= axes(1,0)*
fnaxes(1,0) + axes(1,1)*
fnaxes(1,1) + axes(1,2)*
fnaxes(1,2);
212 DSolnn(0,idf) = Rmatan(0,0)*DSolnax(0,idf)+Rmatan(0,1)*DSolnax(1,idf);
213 DSolnn(1,idf) = Rmatan(1,0)*DSolnax(0,idf)+Rmatan(1,1)*DSolnax(1,idf);
219 for (idf=0; idf<6; idf++){
221 DSolStarnn(0,idf)=0.;
222 DSolStarnn(1,idf)=0.;
223 for (jdf=0; jdf<
fIdfMax; jdf++){
224 SolStarnn[
idf] +=
fT(idf,jdf)*Soln[jdf];
225 DSolStarnn(0,idf) +=
fT(idf,jdf)*DSolnn(0,jdf);
226 DSolStarnn(1,idf) +=
fT(idf,jdf)*DSolnn(1,jdf);
231 for(idf=0;idf<6;idf++) {
232 DSoln6a(0,idf) = Rmatan(0,0)*DSolStarnn(0,idf)+Rmatan(1,0)*DSolStarnn(1,idf);
233 DSoln6a(1,idf) = Rmatan(0,1)*DSolStarnn(0,idf)+Rmatan(1,1)*DSolStarnn(1,idf);
235 for(idf=0; idf<6; idf++) {
239 for(jdf=0; jdf<6; jdf++) {
240 Sol6[
idf] +=
fRmat(jdf,idf)*SolStarnn[jdf];
241 DSol6(0,idf) +=
fRmat(jdf,idf)*DSoln6a(0,jdf);
242 DSol6(1,idf) +=
fRmat(jdf,idf)*DSoln6a(1,jdf);
virtual void Solution(TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
Returns the solution associated with the var index based on the finite element approximation.
Contains the TPZMultPlaca class.
virtual void Solution(TPZVec< STATE > &Sol, TPZFMatrix< STATE > &DSol, TPZFMatrix< REAL > &axes, int var, TPZVec< STATE > &Solout) override
Returns the solution associated with the var index based on the finite element approximation.
TPZFMatrix< STATE > fB00R
TPZFMatrix< STATE > fRmat
int ClassId() const override
Define the class id associated with the class.
Templated vector implementation.
TPZFMatrix< STATE > fKyyR
TPZFMatrix< STATE > fRmatT
TPZFMatrix< STATE > fnaxes
clarg::argBool h("-h", "help message", false)
TPZFMatrix< STATE > fBy0R
TPZFMatrix< STATE > fKxxR
Contains the TPZBndCond class which implements a boundary condition for TPZMaterial objects...
virtual int ClassId() const override
Define the class id associated with the class.
Contains TPZMatrixclass which implements full matrix (using column major representation).
TPZFMatrix< STATE > fB0yR
TPZFMatrix< STATE > fKxyR
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
int32_t Hash(std::string str)
TPZFMatrix< STATE > fB0xR
TPZMultPlaca(int num, STATE h, TPZVec< STATE > &esp, STATE f, STATE E1, STATE E2, STATE ni1, STATE ni2, STATE G12, STATE G13, STATE G23, TPZFMatrix< STATE > &naxes, TPZVec< STATE > &xf, int camadaref, int camadaatual)
virtual void Print(std::ostream &out) const
int Resize(const int64_t newRows, const int64_t wCols) override
Redimension a matrix, but maintain your elements.
int64_t NElements() const
Returns the number of elements of the vector.
TPZFMatrix< STATE > fBx0R
TPZFMatrix< STATE > fKyxR
void Transpose(TPZMatrix< TVar > *const T) const override
It makes *T the transpose of current matrix.