xc
Node.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 /* ****************************************************************** **
29 ** OpenSees - Open System for Earthquake Engineering Simulation **
30 ** Pacific Earthquake Engineering Research Center **
31 ** **
32 ** **
33 ** (C) Copyright 1999, The Regents of the University of California **
34 ** All Rights Reserved. **
35 ** **
36 ** Commercial use of this program without express permission of the **
37 ** University of California, Berkeley, is strictly prohibited. See **
38 ** file 'COPYRIGHT' in main directory for information on usage and **
39 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
40 ** **
41 ** Developed by: **
42 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
43 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
44 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
45 ** **
46 ** ****************************************************************** */
47 
48 // $Revision: 1.9 $
49 // $Date: 2005/11/23 22:48:50 $
50 // $Source: /usr/local/cvs/OpenSees/SRC/domain/mesh/node/Node.h,v $
51 
52 
53 #ifndef Node_h
54 #define Node_h
55 
56 // Written: fmk
57 // Created: 11/96
58 // Revision: A
59 //
60 // Purpose: This file contains the class interface for Node.
61 // A Node provides the abstraction for a node in the FEM.
62 // Nodes have original position, trial displacement, velocity and
63 // acceleration and committed displacement, velocity and acceleration
64 // (the last committed() trial quantities).
65 //
66 // What: "@(#) Node.h, revA"
67 
68 #include "domain/mesh/MeshComponent.h"
69 #include "NodeDispVectors.h"
70 #include "NodeVelVectors.h"
71 #include "NodeAccelVectors.h"
72 #include "utility/matrix/Matrix.h"
73 #include <boost/python/list.hpp>
74 
75 class Pos2d;
76 class Pos3d;
79 class GeomObj2d;
80 class GeomObj3d;
81 
82 namespace XC {
83 class ContinuaReprComponent;
84 class Matrix;
85 class Channel;
86 class Renderer;
87 class TrfGeom;
88 class NodeLocker;
89 class DefaultTag;
90 class SetBase;
91 class MeshEdge;
92 class DOF_Group;
93 class DqPtrsElem;
94 class Constraint;
95 
100 //
112 class Node: public MeshComponent
113  {
114  public:
115  // typedefs.
116  typedef std::set<Element *> ElementPtrSet;
117  typedef std::set<const Element *> ElementConstPtrSet;
118  private:
119  // private data associated with each node object
120  int numberDOF;
121  DOF_Group *theDOF_GroupPtr;
122  Vector Crd;
123 
124  NodeDispVectors disp;
125  NodeVelVectors vel;
126  NodeAccelVectors accel;
127 
128  Matrix R;
129  Matrix mass;
130  mutable Vector unbalLoad;
131  mutable Vector unbalLoadWithInertia;
132  mutable Vector reaction;
133  double alphaM;
134  mutable double tributary;
135 
136  Matrix theEigenvectors; //Eigenvectors matrix.
137 
138  // AddingSensitivity:BEGIN /////////////////////////////////////////
139  Matrix dispSensitivity;
140  Matrix velSensitivity;
141  Matrix accSensitivity;
142  int parameterID;
143  // AddingSensitivity:END ///////////////////////////////////////////
144 
145  static std::deque<Matrix> theMatrices;
146 
147  mutable std::set<ContinuaReprComponent *> connected;
148 
149  std::map<int, std::set<int> > freeze_constraints;
150  ID get_node_lockers_tags(void) const;
151  std::vector<ID> get_constraints_tags(void) const;
152  void set_id_constraints(const ID &, const std::vector<ID> &);
153  bool is_a_freeze_constraint(const ContinuaReprComponent *) const;
154 
155  Matrix get_element_stiff(const ElementConstPtrSet &,bool initial) const;
156  Matrix get_constraints_stiff(void) const;
157 
158  static DefaultTag defaultTag; //<! tag for next new node.
159  protected:
160 
161  DbTagData &getDbTagData(void) const;
162  int sendData(Communicator &);
163  int recvData(const Communicator &);
164  public:
165  // constructors
166  Node(int classTag);
167  Node(int tag, int classTag);
168  Node(int tag, int ndof, double Crd1);
169  Node(int tag, int ndof, double Crd1, double Crd2);
170  Node(int tag, int ndof, double Crd1, double Crd2, double Crd3);
171  Node(int tag, int ndof, const Vector &crds);
172  Node(const Node &theCopy, bool copyMass = true);
173  Node *getCopy(void) const;
174 
175  // destructor
176  virtual ~Node(void);
177 
178  static DefaultTag &getDefaultTag(void);
179 
180  // public methods dealing with the DOF at the node
181  virtual int getNumberDOF(void) const;
182  virtual void setDOF_GroupPtr(DOF_Group *theDOF_Grp);
183  virtual DOF_Group *getDOF_GroupPtr(void);
184  const ID &getDOFs(void) const;
185 
186  size_t getNumberOfConnectedConstraints(void) const;
187  std::set<const Constraint *>getConnectedConstraints(void) const;
188  std::set<Constraint *>getConnectedConstraints(void);
189  boost::python::list getConnectedConstraintsPy(void);
190  boost::python::list getConnectedConstraintTags(void) const;
191  size_t getNumberOfConnectedConstraints(const SetBase *) const;
192  std::set<const Constraint *>getConnectedConstraints(const SetBase *) const;
193  std::set<Constraint *> getConnectedConstraints(const SetBase *);
194  boost::python::list getConnectedConstraintsPy(const SetBase *);
195  boost::python::list getConnectedConstraintTags(const SetBase *) const;
196 
197  void connect(ContinuaReprComponent *el) const;
198  void disconnect(ContinuaReprComponent *el) const;
199 
200  size_t getNumberOfConnectedElements(void) const;
201  ElementConstPtrSet getConnectedElements(void) const;
202  ElementPtrSet getConnectedElements(void);
203  boost::python::list getConnectedElementsPy(void);
204  boost::python::list getConnectedElementTags(void) const;
205  size_t getNumberOfConnectedElements(const SetBase *) const;
206  ElementConstPtrSet getConnectedElements(const SetBase *) const;
207  ElementPtrSet getConnectedElements(const SetBase *);
208  boost::python::list getConnectedElementsPy(const SetBase *);
209  boost::python::list getConnectedElementTags(const SetBase *) const;
210 
211  const MeshEdge *next(const std::deque<MeshEdge> &, const std::set<const MeshEdge *> &) const;
212 
213  const bool isDead(void) const;
214  const bool isAlive(void) const;
215  const bool isFrozen(void) const;
216  const bool isFree(void) const;
217  const bool isFixedOnlyByFreezeConstraints(void) const;
218  void kill(void);
219  void alive(void);
220  void freeze_if_dead(NodeLocker *locker);
221  void melt_if_alive(void);
222 
224  void fix(const std::vector<int> &, const std::vector<double> &);
225  void fix(const ID &, const Vector &);
226 
227  // public methods for obtaining the nodal coordinates
228  virtual size_t getDim(void) const;
229  virtual const Vector &getCrds(void) const;
230  virtual Vector &getCrds(void);
231  Vector getCrds3d(void) const;
232  Pos2d getPosition2d(const Vector &) const;
233  Pos3d getPosition3d(const Vector &) const;
234  Pos2d getInitialPosition2d(void) const;
235  Pos3d getInitialPosition3d(void) const;
236  Pos2d getCurrentPosition2d(const double &factor= 1.0) const;
237  Pos3d getCurrentPosition3d(const double &factor= 1.0) const;
238  bool In(const GeomObj3d &,const double &factor= 1.0, const double &tol= 0.0) const;
239  bool In(const GeomObj2d &,const double &factor= 1.0, const double &tol= 0.0) const;
240  bool Out(const GeomObj3d &,const double &factor= 1.0, const double &tol= 0.0) const;
241  bool Out(const GeomObj2d &,const double &factor= 1.0, const double &tol= 0.0) const;
242  void setPos(const Pos3d &);
243  void Move(const Vector3d &desplaz);
244  void Transform(const TrfGeom &trf);
245  double getDist2(const Pos2d &p,bool initialGeometry= true) const;
246  double getDist(const Pos2d &p,bool initialGeometry= true) const;
247  double getDist2(const Pos3d &p,bool initialGeometry= true) const;
248  double getDist(const Pos3d &p,bool initialGeometry= true) const;
249 
250  // public methods for obtaining committed and trial
251  // response quantities of the node
252  virtual const Vector &getDisp(void) const;
253  Vector getDispXYZ(void) const;
254  Vector getRotXYZ(void) const;
255  virtual const Vector &getVel(void) const;
256  Vector getVelXYZ(void) const;
257  Vector getOmegaXYZ(void) const;
258  virtual const Vector &getAccel(void) const;
259  Vector getAccelXYZ(void) const;
260  Vector getAlphaXYZ(void) const;
261  virtual const Vector &getIncrDisp(void) const;
262  virtual const Vector &getIncrDeltaDisp(void) const;
263 
264  virtual const Vector &getTrialDisp(void) const;
265  virtual const Vector &getTrialVel(void) const;
266  virtual const Vector &getTrialAccel(void) const;
267 
268  // public methods for updating the trial response quantities
269  virtual int setTrialDispComponent(double value, int dof);
270  virtual int setTrialDisp(const Vector &);
271  virtual int setTrialVel(const Vector &);
272  virtual int setTrialAccel(const Vector &);
273 
274  virtual int incrTrialDisp(const Vector &);
275  virtual int incrTrialVel(const Vector &);
276  virtual int incrTrialAccel(const Vector &);
277 
278  const NodalLoad *newLoad(const Vector &);
279  const NodalLoad *createInertiaLoad(const Vector &);
280  // public methods for adding and obtaining load information
281  virtual void zeroUnbalancedLoad(void);
282  virtual int addUnbalancedLoad(const Vector &load, double fact = 1.0);
283  virtual int addInertiaLoadToUnbalance(const Vector &accel, double fact = 1.0);
284  virtual const Vector &getUnbalancedLoad(void) const;
285  virtual const Vector &getUnbalancedLoadIncInertia(void) const;
286 
287  // public methods dealing with the committed state of the node
288  virtual int commitState();
289  virtual int revertToLastCommit();
290  virtual int revertToStart();
291 
292  // public methods for dynamic analysis
293  virtual const Matrix &getMass(void) const;
294  double getMassComponent(const int &) const;
295  virtual int setMass(const Matrix &theMass);
296  virtual int setNumColR(int numCol);
297  virtual int setR(int row, int col, double Value);
298  virtual const Vector &getRV(const Vector &V);
299 
300  virtual int setRayleighDampingFactor(double alphaM);
301  virtual const Matrix &getDamp(void) const;
302 
303  void addTributary(const double &) const;
304  void resetTributary(void) const;
305  const double &getTributary(void) const;
306 
307  // public methods for eigen vector
308  virtual int setNumEigenvectors(int numVectorsToStore);
309  virtual int setEigenvector(int , const Vector &);
310  inline int getNumModes(void) const
311  { return theEigenvectors.noCols(); }
312  virtual Vector getEigenvector(int ) const;
313  Vector getNormalizedEigenvector(int ) const;
314  virtual const Matrix &getEigenvectors(void) const;
315  Matrix getNormalizedEigenvectors(void) const;
316  Pos2d getEigenPosition2d(const double &, int) const;
317  Pos3d getEigenPosition3d(const double &, int) const;
320  void clearEigenvectors(void);
321 
322  //Angular frequencies.
323  double getAngularFrequency(int) const;
324  Vector getAngularFrequencies(void) const;
325 
326  //Modal participation factors.
327  virtual double getModalParticipationFactor(int mode) const;
329  virtual double getModalParticipationFactor(int mode,const std::set<int> &dofs) const;
330  Vector getModalParticipationFactors(const std::set<int> &dofs) const;
331  Vector getModalParticipationFactorsForDOFs(const boost::python::list &) const;
332  //Distribution factors.
333  Vector getDistributionFactor(int mode) const;
334  Vector getDistributionFactor(int mode,const std::set<int> &dofs) const;
335  Matrix getDistributionFactors(void) const;
336 
337  //Effective modal masses
338  double getEffectiveModalMass(int mode) const;
339  Vector getEffectiveModalMasses(void) const;
340 
341  //Equivalent static load.
342  Vector getEquivalentStaticLoad(int mode,const double &) const;
343 
344  //Maximum modal values
345  Vector getMaxModalDisplacement(int mode,const double &) const;
346  Vector getMaxModalVelocity(int mode,const double &) const;
347  Vector getMaxModalAcceleration(int mode,const double &) const;
348  Vector getMaxModalDisplacementForDOFs(int mode,const double &,const std::set<int> &dofs) const;
349  Vector getMaxModalVelocityForDOFs(int mode,const double &,const std::set<int> &dofs) const;
350  Vector getMaxModalAccelerationForDOFs(int mode,const double &,const std::set<int> &dofs) const;
351  Vector getMaxModalDisplacementForDOFs(int mode,const double &,const boost::python::list &dofs) const;
352  Vector getMaxModalVelocityForDOFs(int mode,const double &,const boost::python::list &dofs) const;
353  Vector getMaxModalAccelerationForDOFs(int mode,const double &,const boost::python::list &dofs) const;
354 
355  // public methods for output
356  virtual int sendSelf(Communicator &);
357  virtual int recvSelf(const Communicator &);
358  boost::python::dict getPyDict(void) const;
359  void setPyDict(const boost::python::dict &);
360 
361  std::set<SetBase *> get_sets(void) const;
362  void add_to_sets(std::set<SetBase *> &);
363  void copySetsFrom(const Node &);
364 
365  virtual void Print(std::ostream &s, int flag = 0) const;
366 
367  Vector3d get3dForceComponents(const Vector &) const;
368  Vector3d get3dMomentComponents(const Vector &) const;
369  Vector2d get2dForceComponents(const Vector &) const;
370  double get2dMomentComponent(const Vector &) const;
371 
372  virtual const Vector &getReaction(void) const;
373  void setReaction(const Vector &);
374  Vector3d getReactionForce3d(void) const;
375  Vector3d getReactionMoment3d(void) const;
376  SlidingVectorsSystem3d getReactionSlidingVectorsSystem3d(bool initialGeometry= true) const;
377  Vector2d getReactionForce2d(void) const;
378  double getReactionMoment2d(void) const;
379  SlidingVectorsSystem2d getReactionSlidingVectorsSystem2d(bool initialGeometry= true) const;
380  const Vector &getResistingForce(const ElementConstPtrSet &,const bool &) const;
381  SlidingVectorsSystem3d getResistingSlidingVectorsSystem3d(const ElementConstPtrSet &,const bool &) const;
382  virtual int addReactionForce(const Vector &, double factor);
383  virtual int resetReactionForce(bool inclInertia);
384  bool checkReactionForce(const double &) const;
385  bool checkReactionForceWithHelpers(const double &, const std::map<int, std::list<int> > &dofsAffectedByConstraints) const;
386  Matrix getTangentStiff(const ElementConstPtrSet &) const;
387  Matrix getInitialStiff(const ElementConstPtrSet &) const;
388 
389  // AddingSensitivity:BEGIN /////////////////////////////////////////
390  int addInertiaLoadSensitivityToUnbalance(const Vector &accel, double fact = 1.0, bool tag=false);
391  Matrix getMassSensitivity(void) const;
392  virtual const Matrix &getDampSensitivity(void) const;
393  int getCrdsSensitivity(void) const;
394  int saveSensitivity(Vector *v, Vector *vdot, Vector *vdotdot, int gradNum, int numGrads);
395  double getDispSensitivity(int dof, int gradNum) const;
396  double getVelSensitivity(int dof, int gradNum) const;
397  double getAccSensitivity(int dof, int gradNum) const;
398  int setParameter(const std::vector<std::string> &argv, Parameter &param);
399  int updateParameter(int parameterID, Information &info);
400  int activateParameter(int parameterID);
401 
402  // AddingSensitivity:END ///////////////////////////////////////////
403 
404  };
405 
406 Pos3d pos_node(const Node &nod,bool initialGeometry= true);
407 
408 } // end of XC namespace
409 
410 #endif
411 
virtual int setTrialDisp(const Vector &)
Set the current trial displacement.
Definition: Node.cpp:1079
virtual int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: Node.cpp:2026
Vector3d getEigenvectorDisp3dComponents(int) const
Return the eigenvector displacement components in a 3D vector.
Definition: Node.cpp:1644
virtual size_t getDim(void) const
Return the dimension of the node vector position (1,2 or 3).
Definition: Node.cpp:660
Vector3d get3dMomentComponents(const Vector &) const
Return the "moment/rotation" components in a 3d vector.
Definition: Node.cpp:2830
Pos3d getInitialPosition3d(void) const
Return the initial position of the node in 3D.
Definition: Node.cpp:710
Vectors that store trial and committed values of the node acceleration.
Definition: NodeAccelVectors.h:42
SFreedom_Constraint * fix(const SFreedom_Constraint &)
Introduce en the node una constraint como la being passed as parameter.
Definition: Node.cpp:581
Vector getEffectiveModalMasses(void) const
Returns the effective modal masses.
Definition: Node.cpp:1782
Vector3d get3dForceComponents(const Vector &) const
Return the "force/displacement" components in a 3d vector.
Definition: Node.cpp:2790
Vector getMaxModalVelocity(int mode, const double &) const
Return the maximal modal velocity for the mode being passed as parameter and the acceleration corresp...
Definition: Node.cpp:1809
virtual int setMass(const Matrix &theMass)
Set the mass matrix of the node.
Definition: Node.cpp:1448
Float vector abstraction.
Definition: Vector.h:94
boost::python::list getConnectedElementTags(void) const
Return a python list containing the tags of the elements that are connected with this node...
Definition: Node.cpp:2565
void disconnect(ContinuaReprComponent *el) const
Removes a component (element, constraint,...) from the connected component list.
Definition: Node.cpp:316
virtual int setTrialAccel(const Vector &)
Set the current trial acceleration.
Definition: Node.cpp:1097
Vector3d getReactionMoment3d(void) const
Return the reaction moment in a 3D vector.
Definition: Node.cpp:2773
virtual const Vector & getDisp(void) const
Returns the displacement of the node.
Definition: Node.cpp:1003
void copySetsFrom(const Node &)
Add this element to all the sets containing the given one.
Definition: Node.cpp:2074
Information about an element.
Definition: Information.h:81
virtual void zeroUnbalancedLoad(void)
Causes the node to zero out its unbalanced load vector.
Definition: Node.cpp:1172
Communication parameters between processes.
Definition: Communicator.h:66
Vector getCrds3d(void) const
Returns the node coordinates in a 3D space.
Definition: Node.cpp:680
virtual int sendSelf(Communicator &)
Send the object through the communicator argument.
Definition: Node.cpp:2003
boost::python::list getConnectedConstraintTags(void) const
Return a Python list with the tags of the constraints connected to the node.
Definition: Node.cpp:2397
virtual const Vector & getTrialDisp(void) const
Returns the trial value of the displacement of the node.
Definition: Node.cpp:1036
virtual Vector getEigenvector(int) const
Returns the eigenvector that corresponds to i-th mode.
Definition: Node.cpp:1597
double getReactionMoment2d(void) const
Return the reaction moment in a 2D vector.
Definition: Node.cpp:2870
void add_to_sets(std::set< SetBase *> &)
Adds the node to the sets being passed as parameters.
Definition: Node.cpp:2058
ElementConstPtrSet getConnectedElements(void) const
Return a set of pointers to the elements that are connected with this node.
Definition: Node.cpp:2466
Vector getMaxModalDisplacement(int mode, const double &) const
Returns the maximal modal displacement for the node being passed as parameter and the acceleration co...
Definition: Node.cpp:1802
Vector getAccelXYZ(void) const
Returns the XYZ components of the translational acceleration of the node.
Definition: Node.cpp:920
virtual int revertToStart()
Returns to the initial state.
Definition: Node.cpp:1343
Pos2d getEigenPosition2d(const double &, int) const
Return the "modal" position of the node scaled by factor: return initPos+ factor * getNormalizedEigen...
Definition: Node.cpp:1629
bool In(const GeomObj3d &, const double &factor=1.0, const double &tol=0.0) const
Returns true if the current position of the node scaled by factor: return initPos+ factor * nodDispla...
Definition: Node.cpp:825
SlidingVectorsSystem3d getReactionSlidingVectorsSystem3d(bool initialGeometry=true) const
Return the reaction in the form of a 3D sliding vectors system.
Definition: Node.cpp:2779
Posición en dos dimensiones.
Definition: Pos2d.h:41
virtual const Matrix & getEigenvectors(void) const
Returns the eigenvectors that correspond to the node.
Definition: Node.cpp:1593
Vector getDispXYZ(void) const
Returns the XYZ components of node displacement.
Definition: Node.cpp:904
Node * getCopy(void) const
Virtual constructor.
Definition: Node.cpp:324
Matrix getNormalizedEigenvectors(void) const
Returns a matrix with the eigenvectors as columns.
Definition: Node.cpp:1607
const double & getTributary(void) const
Return tributary value (length, area or volume).
Definition: Node.cpp:1421
bool checkReactionForce(const double &) const
Checks that reactions on the node correspond to constrained degrees of freedom.
Definition: Node.cpp:2981
Node(int classTag)
Default constructor.
Definition: Node.cpp:112
void clearEigenvectors(void)
Remove the stored eigenvectors.
Definition: Node.cpp:1622
int updateParameter(int parameterID, Information &info)
Updates the parameter identified by parameterID with info.
Definition: Node.cpp:2170
Pos2d getPosition2d(const Vector &) const
Return the 2D position obtained as: initPos+ factor * v.
Definition: Node.cpp:724
void resetTributary(void) const
Zeroes tributary (length, area or volume).
Definition: Node.cpp:1417
SlidingVectorsSystem2d getReactionSlidingVectorsSystem2d(bool initialGeometry=true) const
Return the reaction in the form of a 2D sliding vectors system.
Definition: Node.cpp:2876
Pos3d pos_node(const Node &nod, bool initialGeometry=true)
Return the 3D position of the node.
Definition: Node.cpp:988
virtual const Vector & getVel(void) const
Returns the velocity of the node.
Definition: Node.cpp:1012
virtual int incrTrialVel(const Vector &)
Increments the current trial velocity.
Definition: Node.cpp:1117
virtual void setDOF_GroupPtr(DOF_Group *theDOF_Grp)
Sets the DOF_Group pointer.
Definition: Node.cpp:631
Vector2d getReactionForce2d(void) const
Return the reaction force in a 2D vector.
Definition: Node.cpp:2866
boost::python::list getConnectedElementsPy(void)
Return a python list of pointers to the elements that are connected with this node.
Definition: Node.cpp:2535
boost::python::dict getPyDict(void) const
Return a Python dictionary with the object members values.
Definition: Node.cpp:1932
Base class for nodes and elements (mesh components).
Definition: MeshComponent.h:44
virtual int revertToLastCommit()
Returns to the last committed state.
Definition: Node.cpp:1328
int noCols() const
Returns the number of columns, numCols, of the Matrix.
Definition: Matrix.h:273
Vector that stores the dbTags of the class members.
Definition: DbTagData.h:44
virtual int setTrialVel(const Vector &)
Set the current trial velocity.
Definition: Node.cpp:1088
virtual int setR(int row, int col, double Value)
Sets the (row,col) entry of R to be equal to Value.
Definition: Node.cpp:1482
Vector getOmegaXYZ(void) const
Returns the XYZ components of the angular velocity of the node.
Definition: Node.cpp:916
bool Out(const GeomObj3d &, const double &factor=1.0, const double &tol=0.0) const
Returns true if the current position of the node scaled by factor: return initPos+ factor * nodDispla...
Definition: Node.cpp:843
virtual const Matrix & getMass(void) const
Return the mass matrix of the node.
Definition: Node.cpp:1370
Vector of integers.
Definition: ID.h:95
Sliding vectors system.
Definition: SlidingVectorsSystem2d.h:38
DbTagData & getDbTagData(void) const
Returns a vector to store the dbTags de los miembros of the clase.
Definition: Node.cpp:1876
const bool isAlive(void) const
True if node is active.
Definition: Node.cpp:334
virtual const Matrix & getDamp(void) const
Return the damping matrix of the node.
Definition: Node.cpp:1394
void connect(ContinuaReprComponent *el) const
Inserts a component (element, constraint,...) to the connected component list.
Definition: Node.cpp:305
bool checkReactionForceWithHelpers(const double &, const std::map< int, std::list< int > > &dofsAffectedByConstraints) const
Checks that reactions on the node correspond to constrained degrees of freedom using the help of the ...
Definition: Node.cpp:3043
size_t getNumberOfConnectedConstraints(void) const
Return the nunber of connected constraints.
Definition: Node.cpp:2264
Vector getAngularFrequencies(void) const
Returns the angular frequencies from the modal analysis.
Definition: Node.cpp:1581
const bool isDead(void) const
True if node is inactive.
Definition: Node.cpp:328
double getAccSensitivity(int dof, int gradNum) const
Return acceleration sensitivity.
Definition: Node.cpp:2254
virtual int incrTrialAccel(const Vector &)
Increments the current trial acceleration.
Definition: Node.cpp:1127
virtual const Vector & getIncrDeltaDisp(void) const
Return the incremental displacement.
Definition: Node.cpp:1067
virtual int commitState()
Commits the state of the node.
Definition: Node.cpp:1312
void setReaction(const Vector &)
Set the node reaction.
Definition: Node.cpp:2752
virtual int resetReactionForce(bool inclInertia)
Calculate the reactions in this node (used in Domain::calculateNodalReactions).
Definition: Node.cpp:3107
const NodalLoad * newLoad(const Vector &)
Create a new load on the node and put it in the current load pattern.
Definition: Node.cpp:1131
void setPos(const Pos3d &)
Sets the node position.
Definition: Node.cpp:961
double get2dMomentComponent(const Vector &) const
Return the "moment/rotation" components in a 2d vector.
Definition: Node.cpp:2920
virtual ~Node(void)
destructor
Definition: Node.cpp:570
Base de las clases Set y SetEstruct.
Definition: SetBase.h:51
const bool isFree(void) const
returns true if the node has no constraints.
Definition: Node.cpp:552
Vector en dos dimensiones.
Definition: Vector2d.h:41
void Move(const Vector3d &desplaz)
Moves the node (intended only for its use from XC::Set).
Definition: Node.cpp:3120
virtual const Vector & getTrialAccel(void) const
Returns the trial value of the acceleration of the node.
Definition: Node.cpp:1052
virtual int addInertiaLoadToUnbalance(const Vector &accel, double fact=1.0)
Adds inertial loads to the node unbalanced load vector.
Definition: Node.cpp:1217
double getDist(const Pos2d &p, bool initialGeometry=true) const
Returns the distance from the node to the point being passed as parameter.
Definition: Node.cpp:938
const ID & getDOFs(void) const
Gets the equation numbers corresponding to the node DOFS.
Definition: Node.cpp:644
virtual double getModalParticipationFactor(int mode) const
Returns the modal participation factor corresponding to i-th mode.
Definition: Node.cpp:1653
Vector getModalParticipationFactors(void) const
Returns the modal participation factors.
Definition: Node.cpp:1661
Base class for the two-dimensional geometric objects.
Definition: GeomObj2d.h:37
double getMassComponent(const int &) const
Return the mass matrix component for the DOF argument.
Definition: Node.cpp:1374
void melt_if_alive(void)
Deletes the constraint over the node DOFs previously created by the freeze method.
Definition: Node.cpp:517
void Transform(const TrfGeom &trf)
Applies to the node position the transformation being passed as parameter.
Definition: Node.cpp:980
Vector getMaxModalDisplacementForDOFs(int mode, const double &, const std::set< int > &dofs) const
Returns the maximal modal displacement on the DOFs and mode being passed as parameter and the acceler...
Definition: Node.cpp:1824
Vector getNormalizedEigenvector(int) const
Returns the eigenvector that corresponds to i-th mode normalized so the maximum values of the compone...
Definition: Node.cpp:1603
virtual int addUnbalancedLoad(const Vector &load, double fact=1.0)
Adds vector to the node unbalanced load.
Definition: Node.cpp:1183
virtual void Print(std::ostream &s, int flag=0) const
Prints node data.
Definition: Node.cpp:2084
Vector getDistributionFactor(int mode) const
Returns the distribution factor corresponding to the i-th mode.
Definition: Node.cpp:1733
Vector getMaxModalAcceleration(int mode, const double &) const
Return the maximal modal acceleration for the mode being passed as parameter and the acceleration cor...
Definition: Node.cpp:1816
virtual const Vector & getUnbalancedLoad(void) const
Returns unbalanced load vector.
Definition: Node.cpp:1278
int setParameter(const std::vector< std::string > &argv, Parameter &param)
Sets the value param to the parameter argv.
Definition: Node.cpp:2124
virtual const Vector & getAccel(void) const
Returns the acceleration of the node.
Definition: Node.cpp:1021
Pos2d getInitialPosition2d(void) const
Return the initial position of the node in 2D.
Definition: Node.cpp:698
Vectors to store trial and committed values («committed») on node displacements.
Definition: NodeDispVectors.h:42
Default tag.
Definition: DefaultTag.h:37
Matrix getDistributionFactors(void) const
Returns the matrix with the computed distribution factors placed by columns.
Definition: Node.cpp:1747
Pos3d getEigenPosition3d(const double &, int) const
Return the "modal" position of the node scaled by factor: return initPos+ factor * getNormalizedEigen...
Definition: Node.cpp:1637
int activateParameter(int parameterID)
Activates the parameter identified by parameterID.
Definition: Node.cpp:2198
boost::python::list getConnectedConstraintsPy(void)
Return a Python list of pointers to the constraints connected to the node.
Definition: Node.cpp:2357
const Vector & getResistingForce(const ElementConstPtrSet &, const bool &) const
Return the action of the elements from the set over this node.
Definition: Node.cpp:2610
virtual const Vector & getCrds(void) const
Return a const reference to the vector of nodal coordinates.
Definition: Node.cpp:668
Single freedom constraint.
Definition: SFreedom_Constraint.h:85
Vectors to store trial and committed values of node velocity.
Definition: NodeVelVectors.h:42
Vector3d getEigenvectorRot3dComponents(int) const
Return the eigenvector rotation components in a 3D vector.
Definition: Node.cpp:1648
double getDispSensitivity(int dof, int gradNum) const
Return displacement sensitivity.
Definition: Node.cpp:2236
Base class for components used to represent the material (continuum).
Definition: ContinuaReprComponent.h:39
virtual int setNumEigenvectors(int numVectorsToStore)
Set the dimensions of the matrix that constrains the eigenvectors.
Definition: Node.cpp:1525
virtual const Vector & getUnbalancedLoadIncInertia(void) const
Return unbalanced load vector including inertial forces.
Definition: Node.cpp:1287
virtual int setRayleighDampingFactor(double alphaM)
Sets the Rayleigh dumping factor.
Definition: Node.cpp:1386
A DOF_Group object is instantiated by the ConstraintHandler for every unconstrained node in the domai...
Definition: DOF_Group.h:107
virtual int addReactionForce(const Vector &, double factor)
Increments the node reaction.
Definition: Node.cpp:2953
const bool isFixedOnlyByFreezeConstraints(void) const
Return true if the node is fixed only by its freeze constraints (all the other constraints, if any, are dead)
Definition: Node.cpp:368
Mesh edge.
Definition: MeshEdge.h:40
double getAngularFrequency(int) const
Return the angular frequency corresponding to the i-th mode.
Definition: Node.cpp:1573
Geometric transformation that can be applied to the components of a set.
Definition: TrfGeom.h:48
std::set< Element * > ElementPtrSet
Container of element pointers.
Definition: Node.h:116
std::set< const Element * > ElementConstPtrSet
Container of const element pointers.
Definition: Node.h:117
const MeshEdge * next(const std::deque< MeshEdge > &, const std::set< const MeshEdge *> &) const
Returns an edge that has its origin in this node (and is not in visited).
Definition: Node.cpp:2592
int addInertiaLoadSensitivityToUnbalance(const Vector &accel, double fact=1.0, bool tag=false)
??
Definition: Node.cpp:1241
Vector getMaxModalVelocityForDOFs(int mode, const double &, const std::set< int > &dofs) const
Returns the maximum modal velocity on the DOFs and mode being passed as parameter and the acceleratio...
Definition: Node.cpp:1842
virtual const Vector & getRV(const Vector &V)
This is a method provided for Element objects, the Node object returns the product of the matrix R an...
Definition: Node.cpp:1502
void freeze_if_dead(NodeLocker *locker)
Imposes zero displacement (zero value for all node DOFs).
Definition: Node.cpp:398
Vector getEquivalentStaticLoad(int mode, const double &) const
Return the equivalent static load for the mode being passed as parameter and the acceleration corresp...
Definition: Node.cpp:1793
Posición en tres dimensiones.
Definition: Pos3d.h:44
const NodalLoad * createInertiaLoad(const Vector &)
Creates the inertia load that corresponds to the acceleration argument.
Definition: Node.cpp:1157
Single freedom constraints that make part of a load pattern.
Definition: NodeLocker.h:45
Sliding vectors system en un espacio tridimensional.
Definition: SlidingVectorsSystem3d.h:39
void setPyDict(const boost::python::dict &)
Set the values of the object members from a Python dictionary.
Definition: Node.cpp:1959
Matrix getTangentStiff(const ElementConstPtrSet &) const
Return the tangent stiffness contribution of the elements argument.
Definition: Node.cpp:2735
virtual int incrTrialDisp(const Vector &)
Increments the current trial displacement.
Definition: Node.cpp:1107
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
virtual DOF_Group * getDOF_GroupPtr(void)
Gets the DOF_Group pointer.
Definition: Node.cpp:640
virtual const Vector & getReaction(void) const
Return the node reaction.
Definition: Node.cpp:2748
virtual int setEigenvector(int, const Vector &)
Set el eigenvector eigenvector al modo mode.
Definition: Node.cpp:1546
Vector getMaxModalAccelerationForDOFs(int mode, const double &, const std::set< int > &dofs) const
Return the maximal modal acceleration on the DOFs and mode being passed as parameter and the accelera...
Definition: Node.cpp:1859
Matrix of floats.
Definition: Matrix.h:111
Vector getModalParticipationFactorsForDOFs(const boost::python::list &) const
Returns the modal participation factors.
Definition: Node.cpp:1726
Pos3d getCurrentPosition3d(const double &factor=1.0) const
Return the current position of the node scaled by factor: return initPos+ factor * nodDisplacement...
Definition: Node.cpp:802
Vector getRotXYZ(void) const
Returns the XYZ components of node rotation.
Definition: Node.cpp:908
std::set< const Constraint * > getConnectedConstraints(void) const
Return a set of const pointers the constraints connected to the node.
Definition: Node.cpp:2291
Parameter.
Definition: Parameter.h:68
const bool isFrozen(void) const
returns true if the node is frozen.
Definition: Node.cpp:548
Vector getVelXYZ(void) const
Returns the XYZ components of the translational velocity of the node.
Definition: Node.cpp:912
void alive(void)
Activates the component.
Definition: Node.cpp:562
virtual const Vector & getTrialVel(void) const
Returns the trial value of the velocity of the node.
Definition: Node.cpp:1044
virtual int getNumberDOF(void) const
Return the number of node DOFs, associated with the node.
Definition: Node.cpp:622
Vector getAlphaXYZ(void) const
Returns the XYZ components of the angular acceleration of the node.
Definition: Node.cpp:924
void kill(void)
Deactivates the component.
Definition: Node.cpp:555
size_t getNumberOfConnectedElements(void) const
Return the number of elements that are connected to this node.
Definition: Node.cpp:2438
int sendData(Communicator &)
Sends object members through the communicator argument.
Definition: Node.cpp:1883
Mesh node.
Definition: Node.h:112
Vector3d getReactionForce3d(void) const
Return the reaction force in a 3D vector.
Definition: Node.cpp:2769
double getDist2(const Pos2d &p, bool initialGeometry=true) const
Returns the square of the distance from the node to the point being passed as parameter.
Definition: Node.cpp:931
virtual int setNumColR(int numCol)
Creates a Matrix to store the R matrix.
Definition: Node.cpp:1470
SlidingVectorsSystem3d getResistingSlidingVectorsSystem3d(const ElementConstPtrSet &, const bool &) const
Returns the sliding vector system that represents the action of the elements of the set over the node...
Definition: Node.cpp:2643
Pos3d getPosition3d(const Vector &) const
Return the 3D position obtained as: initPos+ factor * v.
Definition: Node.cpp:746
Pos2d getCurrentPosition2d(const double &factor=1.0) const
Return the current position of the node scaled by factor: return initPos+ factor * nodDisplacement...
Definition: Node.cpp:780
virtual const Vector & getIncrDisp(void) const
Returns the displacement increment.
Definition: Node.cpp:1056
Load over a node.
Definition: NodalLoad.h:83
Matrix getInitialStiff(const ElementConstPtrSet &) const
Return the initial stiffness contribution of the elements argument.
Definition: Node.cpp:2744
static DefaultTag & getDefaultTag(void)
Returns a default value for node identifier.
Definition: Node.cpp:576
Vector en tres dimensiones.
Definition: Vector3d.h:39
Vector2d get2dForceComponents(const Vector &) const
Return the "force/displacement" components in a 2d vector.
Definition: Node.cpp:2887
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: Node.cpp:1906
double getVelSensitivity(int dof, int gradNum) const
Return velocity sensitivity.
Definition: Node.cpp:2245
double getEffectiveModalMass(int mode) const
Return the effective modal mass that corresponds to i mode.
Definition: Node.cpp:1770
void addTributary(const double &) const
Adds to tributary the lentgth, area o volume being passed as parameter.
Definition: Node.cpp:1413
Clase base para los objetos en tres dimensiones.
Definition: GeomObj3d.h:43
std::set< SetBase * > get_sets(void) const
Returns the sets that include this node.
Definition: Node.cpp:2041