30 #ifndef NODEPTRARRAY3D_H 31 #define NODEPTRARRAY3D_H 33 #include "xc_utils/src/kernel/CommandEntity.h" 34 #include "xc_basic/src/funciones/algebra/ExprAlgebra.h" 35 #include "NodePtrArray.h" 36 #include "PtrArray3dBase.h" 37 #include "utility/matrix/Vector.h" 66 std::deque<double> RowSimpsonIntegration(
const F &,
const std::string &,
const size_t &,
const ExprAlgebra &,
const size_t &)
const;
67 Vector IRowSimpsonIntegration(
const size_t &,
const size_t &,
const ExprAlgebra &,
const size_t &n= 10)
const;
68 Vector JRowSimpsonIntegration(
const size_t &,
const size_t &,
const ExprAlgebra &,
const size_t &n= 10)
const;
69 Vector KRowSimpsonIntegration(
const size_t &,
const size_t &,
const ExprAlgebra &,
const size_t &n= 10)
const;
73 std::vector<int> getTags(
void)
const;
76 void Print(std::ostream &os)
const;
83 std::deque<double> NodePtrArray3d::RowSimpsonIntegration(
const F &f,
const std::string &nmb_coo,
const size_t &num_coo,
const ExprAlgebra &e,
const size_t &n)
const 85 const size_t sz= f.Size();
86 std::deque<double> retval;
87 if(sz<2)
return retval;
88 const Vector *p0= &(f(1)->getCrds());
89 if(!p0)
return retval;
90 double s0= (*p0)(num_coo);
91 for(
size_t i=2;i<=sz;i++)
93 const Vector *p1= &(f(i)->getCrds());
94 if(!p1)
return retval;
95 double s1= ((*p0)(num_coo)+(*p1)(num_coo))/2.0;
96 Intervalo1D iv(nmb_coo,ExprAlgebra(s0),ExprAlgebra(s1),n);
97 retval.push_back(e.IntegSimpson(iv).ToNum());
101 const Vector *p1= &(f(sz)->getCrds());
102 if(!p1)
return retval;
103 double s1= (*p1)(num_coo);
104 Intervalo1D iv(nmb_coo,ExprAlgebra(s0),ExprAlgebra(s1),n);
105 retval.push_back(e.IntegSimpson(iv).ToNum());
113 std::vector<int> getNodeIdsQuad4N(
const NodePtrArray3d::constant_i_layer_const_ref &nodes,
const size_t &j,
const size_t &k);
114 std::vector<int> getNodeIdsQuad9N(
const NodePtrArray3d::constant_i_layer_const_ref &nodes,
const size_t &j,
const size_t &k);
Float vector abstraction.
Definition: Vector.h:93
ID getNodeIndices(const Node *) const
Returns the indexes of the node identified by the pointer being passed as parameter.
Definition: NodePtrArray3d.cc:106
Vector of integers.
Definition: ID.h:93
Node * findNode(const int &tag)
Returns (if it exists) a pointer to the node which tag is being passed as parameter.
Definition: NodePtrArray3d.cc:57
void fix(const SFreedom_Constraint &) const
Impone desplazamiento nulo en the nodes de this set.
Definition: NodePtrArray3d.cc:179
Node * getNearestNode(const Pos3d &p)
Returns the node closest to the point being passed as parameter.
Definition: NodePtrArray3d.cc:78
Single freedom constraint.
Definition: SFreedom_Constraint.h:84
Three-dimensional array of pointers to nodes.
Definition: NodePtrArray3d.h:50
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
NodePtrArray3d(const size_t n_layers=0)
Default constructor.
Definition: NodePtrArray3d.cc:45
Mesh node.
Definition: Node.h:110
Three-dimensional array of object pointers.
Definition: PtrArray3dBase.h:55