39 for(ix=0; ix<= nelx; ix++) {
40 for(iy=0; iy<= nely; iy++) {
41 coord[0] = ix*
fDx-dx/2.;
42 coord[1] = iy*
fDy-dy/2.;
89 for(ip = 0; ip<nplaca; ip++) {
119 for(ix=0; ix<=
fNelx; ix++) {
120 for(iy=0; iy<=
fNely; iy++) {
126 int64_t nodebase1 = nnodes - (
fNelx+1)*(
fNely+1);
129 for(elx=0; elx<
fNelx; elx++) {
130 for(ely=0; ely<
fNely; ely++) {
131 nodeindexes[0] = nodebase1+elx+ely*(fNelx+1);
132 nodeindexes[1] = nodebase1+elx+1+ely*(fNelx+1);
133 nodeindexes[2] = nodebase1+elx+1+(ely+1)*(fNelx+1);
134 nodeindexes[3] = nodebase1+elx+(ely+1)*(fNelx+1);
136 for(i=0; i<4; i++) nodeindexes[i+4] = nodeindexes[i]+(fNelx+1)*(fNely+1);
140 if(elx == fNelx-1)
TPZGeoElBC gbc2(gel,22,-material->
Id()*4-1);
141 if(ely == fNely-1)
TPZGeoElBC gbc3(gel,23,-material->
Id()*4-2);
142 if(elx == 0)
TPZGeoElBC gbc4(gel,24,-material->
Id()*4-3);
144 if(nplaca == 0 && elx == 0 && ely == 0) {
164 if(elx == fNelx/2 && ely == fNely/2) {
175 out <<
"TPZMulticamadaOrthotropic::Print\n";
176 out << nplaca << endl;
177 for (i=0; i<nplaca; i++){
178 out <<
"placa : " << i << endl;
200 if(height <= 0.)
return;
201 REAL height3 = height*height*height;
205 tensor(0,1) = tensor(1,0);
209 tensor(1,0) = tensor(0,1);
210 tensor(0,2) += -6.*(
fQX[2]+REAL(
fLinearX)*x*
fdQXdX[2])*(zrel*zrel-height*height/4.)/height3;
211 tensor(2,0) = tensor(0,2);
212 tensor(1,2) += -6.*(
fQY[2]+REAL(
fLinearY)*y*
fdQYdY[2])*(zrel*zrel-height*height/4.)/height3;
213 tensor(2,1) = tensor(1,2);
247 for(ip=0; ip<nplaca; ip++) {
377 ksi[2] = -1.+2.*(x[2]-zmin)/(zmax-zmin);
378 TPZFNMatrix<9> tensorcomp(3,3),tensoranalytic(3,3),gradtensorx(3,3),gradtensory(3,3);
381 tensor = tensorcomp + tensoranalytic;
385 tensor += gradtensorx;
390 tensor += gradtensory;
407 if(print) an.
Print(
"* PRINT ANALISYS *",out);
430 std::set<int> matids;
431 matids.insert(mat->
Id());
433 cout <<
"\nmain::ComputeSolution out file : MultCam.dx\n";
445 cout <<
"Iteracao = " << ++iter << endl;
450 while(iter < numiter) {
460 cout <<
"Iteracao = " << ++iter << endl;
469 out <<
"Output for the tensors at the center of the plates\n\n";
472 for(ip=0; ip< nplaca; ip++) {
473 out <<
"Tensor para placa " << ip << endl;
482 out <<
"Output for the tensors at the center of the plates\n\n";
485 for(ip=0; ip< nplaca; ip++) {
486 out <<
"Tensor para placa " << ip << endl;
487 fPlacaOrth[ip].PrintTensors(out,tensorin,tensorout);
495 out <<
"Integrated force and moment values and their numerically computed derivatives " << endl << endl;
void AddPlacaOrtho(TPZMaterial *material, REAL height)
Adds shells.
void Print(std::ostream &out=std::cout)
Prints the structural information of the vector object to the output stream. This method will not p...
Contains TPZAnalysis class which implements the sequence of actions to perform a finite element analy...
void Print(std::ostream &out=std::cout)
virtual void SetFileName(const std::string &filename)
Sets the name of the output file.
Class which implements a tension boundary condition, where the tensor is computed from a finite eleme...
void SetStructuralMatrix(TPZAutoPointer< TPZStructMatrix > strmatrix)
Set structural matrix as auto pointer for analysis.
void Print(const std::string &name, std::ostream &out)
Print connect and solution information.
clarg::argBool bc("-bc", "binary checkpoints", false)
virtual TPZGeoEl * CreateGeoElement(MElementType type, TPZVec< int64_t > &cornerindexes, int matid, int64_t &index, int reftype=1)
Generic method for creating a geometric element. Putting this method centrally facilitates the modifi...
Implements the interface of the graphmesh to the OpenDX graphics package. Post processing.
Defines step solvers class. Solver.
void SetSolver(TPZMatrixSolver< STATE > &solver)
Set solver matrix.
TPZMulticamadaOrthotropic(REAL z, REAL dx, REAL dy, int64_t nelx, int64_t nely, REAL Correct=1.0)
Construtor.
void Tensor(TPZVec< REAL > &x, int placa, TPZFMatrix< REAL > &tensor)
Tensor which needs to be applied at the given coordinate.
TPZCompMesh * Mesh() const
Returns the pointer to the computational mesh.
virtual int Dimension() const =0
Returns the integrable dimension of the material.
Contains declaration of TPZGeoElBC class, it is a structure to help the construction of geometric ele...
int64_t NElements() const
Access method to query the number of elements of the vector.
void AnalyticTensor(TPZVec< REAL > &co, TPZFMatrix< REAL > &tensor)
Compute a tension state corresponding to the difference between the target state and tension state l...
Contains the TPZMatOrthotropic class.
Contains the TPZBCTension class which implements a tension boundary condition.
TPZManVector< REAL, 3 > fDiry
void SetDefaultOrder(int order)
Implements SkyLine Structural Matrices. Structural Matrix.
TPZFMatrix< STATE > & Solution()
Returns the solution matrix.
This abstract class defines the behaviour which each derived class needs to implement.
void SetResolution(int res)
Sets resolution.
int Zero() override
Makes Zero all the elements.
void Resize(const int newsize)
Increase the size of the chunk vector.
Contains declaration of TPZMesh class which defines a geometrical mesh and contains a corresponding l...
Implements the sequence of actions to perform a finite element analysis. Analysis.
void Push(const T object)
Pushes a copy of the object on the stack.
expr_ dx(i) *cos(expr_.val())
virtual void DrawSolution(TPZBlock< REAL > &Sol)
Draw solution as dx file.
virtual void LoadSolution()
Load the solution into the computable grid.
Defines the behaviour of all geometric elements. GeometryTPZGeoEl is the common denominator for all g...
#define DebugStop()
Returns a message to user put a breakpoint in.
int64_t fNelx
Number of elementos at x and y axes : fNelx, fNely.
This class defines the boundary condition for TPZMaterial objects.
Contains the TPZSkylineStructMatrix class which implements SkyLine Structural Matrices.
TPZAdmChunkVector< TPZGeoNode > & NodeVec()
REAL fCorrect
Relaxation factor to correct resulting forces.
virtual void AutoBuild(const std::set< int > *MaterialIDs)
Creates the computational elements, and the degree of freedom nodes.
void PrintCenterForces(std::ostream &out)
Contains the TPZPlacaOrthotropic class.
REAL co[8][3]
Coordinates of the eight nodes.
void PrintTensors(std::ostream &out)
int Redim(const int64_t newRows, const int64_t newCols) override
Redimension a matrix and ZERO your elements.
virtual void DrawMesh(int numcases)
Draw mesh as dx file.
virtual void Run(std::ostream &out=std::cout)
Calls the appropriate sequence of methods to build a solution or a time stepping sequence.
Structure to help the construction of geometric elements along side of a given geometric element...
void BuildConnectivity()
Build the connectivity of the grid.
int InsertMaterialObject(TPZMaterial *mat)
Insert a material object in the datastructure.
TPZCompMesh * fCompMesh
Computational mesh to calculations.
TPZStack< TPZPlacaOrthotropic > fPlacaOrth
Shells vector.
void GenerateMesh()
Creates a computational mesh to all the shells.
This class implements a geometric mesh for the pz environment. Geometry.
TPZManVector< REAL, 3 > fDirx
Implements computational mesh. Computational Mesh.
Contains declaration of TPZInterpolatedElement class which implements computational element of the in...
void Fill(const T ©, const int64_t from=0, const int64_t numelem=-1)
Will fill the elements of the vector with a copy object.
TPZGeoMesh * fGeoMesh
Geometric mesh with shells.
Contains TPZStepSolver class which defines step solvers class.
void ComputeCenterForces()
Computes the global efforts of the finite element solution.
int64_t NElements() const
Returns the number of elements of the vector.
O objeto desta classe representa uma placa do objeto multicamada.
Contains the TPZMulticamadaOrthotropic class.
void SetDirect(const DecomposeType decomp)
Contains the TPZDXGraphMesh class which implements the interface of the graphmesh to the OpenDX graph...
REAL fDx
Dimension of the shells (must to be constant for all shells)
void ComputeSolution(std::ostream &out=std::cout, int print=0)