39 if(fTensorVar == -1) {
44 if(fTensorVar == -1)
return;
50 fIntel->Solution(ksi,fTensorVar,tensor);
53 T(i%3,i/3) = tensor[i];
69 for(ip = 0; ip<np; ip++) {
71 rule.
Point(ip,pos,weight);
74 REAL z = fZMin + (fZMax-fZMin)*(pos[0]+1.)/2.;
81 tension += normal[n]*tensor(n,d)*direction[d];
84 moment += weight*tension*(z-zref);
99 for(ip = 0; ip<np; ip++) {
101 rule.
Point(ip,pos,weight);
108 tension += normal[n]*tensor(n,d)*direction[d];
111 force += weight*tension;
120 cout <<
"Plate height : " ;
147 for(ip = 0; ip<np; ip++) {
149 rule.
Point(ip,pos,weight);
153 out <<
"Tensor at pos " << pos[0] <<
" x " << x << endl;
154 for(i=0; i<3; i++)
for(j=0; j<3; j++) tensorout(ip,3*i+j) = tensor(i,j);
155 for(j=0; j<9; j++) DiffTension(ip,j) = tensorout(ip,j) - tensorin(ip,j);
157 out <<
" tensor(n) - tensor(n-1) = " << endl;
160 out << DiffTension(i,j) <<
" ";
165 out <<
"Norma of tensor out - tensor in = " << normat << endl;
177 for(ip = 0; ip<np; ip++){
178 rule.
Point(ip,pos,weight);
183 for(ip = 0; ip<np; ip++) {
188 out <<
"Tensor at pos " << point[ip] <<
" x " << x <<
" -> ";
192 REAL tension = tensor(i,j);
193 if(
fabs(tension) < 1.e-10) out << 0 <<
" ";
194 else out << tension <<
" ";
201 cout <<
"Norma do tensor " << normat << endl;
210 for(i=0;i<dimrow;i++)
for(j=0;j<dimcol;j++) val += tension(i,j)*tension(i,j);
217 TPZManVector<REAL,3> pos(1,0.), ksi1(3,0.), ksi2(3,0.), x1(3,0.), x2(3,0.);
218 TPZFNMatrix<9> tensor1(3,3,0.), tensor2(3,3,0.), tensordif(3,3,0.);
219 ksi1[0] = -graddir[0];
220 ksi1[1] = -graddir[1];
221 ksi2[0] = graddir[0];
222 ksi2[1] = graddir[1];
225 REAL
dist =
sqrt((x1[0]-x2[0])*(x1[0]-x2[0])+(x1[1]-x2[1])*(x1[1]-x2[1]));
228 for(ip = 0; ip<np; ip++) {
230 rule.
Point(ip,pos,weight);
233 Tensor(ksi1,tensor1);
234 Tensor(ksi2,tensor2);
236 tensordif -= tensor1;
237 REAL z = fZMin + (fZMax-fZMin)*(pos[0]+1.)/2.;
242 tension += normal[n]*tensordif(n,d)*direction[d];
245 moment += weight*tension*(z-zref);
248 moment *= fH/(2.*
dist);
256 TPZManVector<REAL,3> pos(1,0.), ksi1(3,0.), ksi2(3,0.), x1(3,0.), x2(3,0.);
257 TPZFNMatrix<9> tensor1(3,3,0.), tensor2(3,3,0.), tensordif(3,3,0.);
258 ksi1[0] = -graddir[0];
259 ksi1[1] = -graddir[1];
260 ksi2[0] = graddir[0];
261 ksi2[1] = graddir[1];
264 REAL
dist =
sqrt((x1[0]-x2[0])*(x1[0]-x2[0])+(x1[1]-x2[1])*(x1[1]-x2[1]));
267 for(ip = 0; ip<np; ip++) {
269 rule.
Point(ip,pos,weight);
272 Tensor(ksi1,tensor1);
273 Tensor(ksi2,tensor2);
275 tensordif -= tensor1;
280 tension += normal[n]*tensordif(n,d)*direction[d];
283 force += weight*tension;
285 force *= fH/(2.*
dist);
290 if(fTensorVar == -1) {
295 if(fTensorVar == -1)
return;
300 TPZManVector<REAL,3> pos(1,0.), ksi1(3,0.), ksi2(3,0.), x1(3,0.), x2(3,0.);
302 ksi1[0] = ksi[0]-graddir[0];
303 ksi1[1] = ksi[1]-graddir[1];
304 ksi1[2] = ksi[2]-graddir[2];
305 ksi2[0] = ksi[0]+graddir[0];
306 ksi2[1] = ksi[1]+graddir[1];
307 ksi2[2] = ksi[2]+graddir[2];
310 REAL
dist =
sqrt((x1[0]-x2[0])*(x1[0]-x2[0])+(x1[1]-x2[1])*(x1[1]-x2[1]));
312 fIntel->Solution(ksi1,fTensorVar,tensor1);
313 fIntel->Solution(ksi2,fTensorVar,tensor2);
316 T(i%3,i/3) = (tensor2[i]-tensor1[i])/dist;
virtual void Point(int ip, TPZVec< REAL > &pos, REAL &w) const
Returns i-th point at master element and related weight.
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ fabs
Contains the TPZInt1d, TPZIntTriang, TPZIntQuad, TPZIntCube3D, TPZIntTetra3D, TPZIntPyram3D and TPZIn...
Implements a vector class which allows to use external storage provided by the user. Utility.
Contains declaration of TPZGeoNode class which defines a geometrical node.
TPZPlacaOrthotropic()
Default constructor.
virtual int VariableIndex(const std::string &name)
Returns the variable index associated with the name.
REAL Force(TPZVec< REAL > &normal, TPZVec< REAL > &direction)
REAL val(STATE &number)
Returns value of the variable.
void PrintTensors(std::ostream &out)
Handles the numerical integration for one-dimensional problems. Numerical Integration.
virtual TPZMaterial * Material() const
Identify the material object associated with the element.
void Tensor(TPZVec< REAL > &ksi, TPZFMatrix< REAL > &T)
Returns the tensions tensor of the shell.
void GradTensor(TPZVec< REAL > &graddir, TPZVec< REAL > &ksi, TPZFMatrix< REAL > &gradtensor)
void Push(const T object)
Pushes a copy of the object on the stack.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
REAL GradMoment(REAL zref, TPZVec< REAL > &graddir, TPZVec< REAL > &normal, TPZVec< REAL > &direction)
REAL GradForce(TPZVec< REAL > &graddir, TPZVec< REAL > &normal, TPZVec< REAL > &direction)
TPZCompEl * Reference() const
Return a pointer to the element referenced by the geometric element.
virtual int NPoints() const
Returns number of points for the cubature rule related.
expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ expr_ sqrt
Contains the TPZPlacaOrthotropic class.
REAL TensionNorm(TPZFMatrix< REAL > &tension, int dimrow, int dimcol)
Returns norm of the tension.
REAL dist(TPZVec< T1 > &vec1, TPZVec< T1 > &vec2)
REAL Height(TPZGeoMesh *gmesh)
Contains declaration of TPZInterpolatedElement class which implements computational element of the in...
REAL Moment(REAL zref, TPZVec< REAL > &normal, TPZVec< REAL > &direction)
Implements computational element based on an interpolation space. Computational Element.