30 #include "PlaneElement.h" 35 #include "preprocessor/multi_block_topology/matrices/ElemPtrArray3d.h" 36 #include "preprocessor/multi_block_topology/aux_meshing.h" 37 #include "preprocessor/prep_handlers/LoadHandler.h" 38 #include "domain/load/plane/BidimStrainLoad.h" 39 #include "vtkCellType.h" 44 template <
class PhysProp>
52 QuadBase9N(
int tag,
int classTag,
const PhysProp &);
69 template <
class PhysProp>
74 template <
class PhysProp>
81 template <
class PhysProp>
89 template <
class PhysProp>
102 template <
class PhysProp>
105 const std::deque<Pos3d> positions= this->getPosNodes(initialGeometry);
107 Polygon3d retval(positions[7], positions[0], positions[4]);
109 retval.push_back(positions[1]);
110 retval.push_back(positions[5]);
111 retval.push_back(positions[2]);
112 retval.push_back(positions[6]);
113 retval.push_back(positions[3]);
119 template <
class PhysProp>
122 std::vector<int> retval= this->getNodePtrs().getIdx();
129 template <
class PhysProp>
133 std::cerr << this->getClassName() <<
"::" << __FUNCTION__
134 <<
"; not implemented." << std::endl;
139 template <
class PhysProp>
143 std::cerr << this->getClassName() <<
"::" << __FUNCTION__
144 <<
"; not implemented." << std::endl;
150 template <
class PhysProp>
154 std::cerr << this->getClassName() <<
"::" << __FUNCTION__
155 <<
"; not implemented." << std::endl;
160 template <
class PhysProp>
164 std::cerr << this->getClassName() <<
"::" << __FUNCTION__
165 <<
"; not implemented." << std::endl;
170 template <
class PhysProp>
174 this->physicalProperties.getMaterialsVector().zeroInitialGeneralizedStrains();
179 template <
class PhysProp>
183 std::cerr << this->getClassName()
184 <<
"; load over inactive elements: " 185 << this->getTag() << std::endl;
188 if(
const BidimStrainLoad *strainLoad= dynamic_cast<const BidimStrainLoad *>(theLoad))
190 static std::vector<Vector> initStrains;
191 initStrains= strainLoad->getStrains();
192 for(std::vector<Vector>::iterator i= initStrains.begin();i!=initStrains.end();i++)
194 this->physicalProperties.getMaterialsVector().incrementInitialGeneralizedStrains(initStrains);
198 std::cerr << this->getClassName() <<
"::" << __FUNCTION__
199 <<
"; load type unknown for element with tag: " <<
200 this->getTag() << std::endl;
208 template <
class PhysProp>
210 {
return VTK_QUADRATIC_QUAD; }
Element::NodesEdge getNodesEdge(const size_t &i) const
Returns the nodes of the element edge.
Definition: QuadBase9N.h:140
std::vector< int > getIdxNodes(void) const
Return the indexes of the nodes (used when creating VTK meshes).
Definition: QuadBase9N.h:120
std::vector< const Node * > NodesEdge
Nodes on an element edge.
Definition: Element.h:116
ElemPtrArray3d put_on_mesh(const NodePtrArray3d &, meshing_dir dm) const
Put the element on the mesh being passed as parameter.
Definition: QuadBase9N.h:90
Plane polygon in a 3D space.
Definition: Polygon3d.h:35
Segment en tres dimensiones.
Definition: Segment3d.h:41
Base class for grids of bool in 3D (used to express if something exists or not in a (layer...
Definition: BoolArray3d.h:34
QuadBase9N(int classTag)
Constructor.
Definition: QuadBase9N.h:70
int getEdgeNodes(const Node *, const Node *) const
Returns the edge of the element that ends in the nodes being passed as parameters.
Definition: QuadBase9N.h:151
ID getLocalIndexNodesEdge(const size_t &i) const
Returns the local indexes of the nodes that lie on the i-th edge.
Definition: QuadBase9N.h:161
Vector of integers.
Definition: ID.h:95
int addLoad(ElementalLoad *theLoad, double loadFactor)
Adds to the element the load being passed as parameter.
Definition: QuadBase9N.h:180
Three-dimensional array of pointers to elements.
Definition: ElemPtrArray3d.h:47
Base class for nine node quads.
Definition: QuadBase9N.h:45
Polygon3d getPolygon(bool initialGeometry=true) const
Returns the element contour as a polygon.
Definition: QuadBase9N.h:103
int getVtkCellType(void) const
Interfaz con Vtk.
Definition: QuadBase9N.h:209
BoolArray3d getNodePattern(void) const
Return a grid of booleans, one for each of the element nodes.
Definition: QuadBase9N.h:82
void zeroLoad(void)
Zeroes loads on element.
Definition: QuadBase9N.h:171
Three-dimensional array of pointers to nodes.
Definition: NodePtrArray3d.h:51
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Segment3d getSide(const size_t &i, bool initialGeometry=true) const
Returns the element edge.
Definition: QuadBase9N.h:130
Base class for loads over elements.
Definition: ElementalLoad.h:79
Load due to restricted material expansion or contraction on bidimensional elements.
Definition: BidimStrainLoad.h:39
Mesh node.
Definition: Node.h:111
Base class for plane elements.
Definition: PlaneElement.h:55
ElemPtrArray3d put_quad9N_on_mesh(const Element &e, const NodePtrArray3d &, meshing_dir dm)
Places the elements on the mesh passed as parameter.
Definition: aux_meshing.cc:288