mbsim  4.0.0
MBSim Kernel
generalized_initial_velocity.h
1/* Copyright (C) 2004-2024 MBSim Development Team
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Contact: martin.o.foerg@gmail.com
18 */
19
20#ifndef _GENERALIZED_INITIAL_VELOCITY_H_
21#define _GENERALIZED_INITIAL_VELOCITY_H_
22
23#include "mbsim/links/initial_condition.h"
24
25namespace MBSim {
26
27 using Index = int;
28 class Object;
29
31 protected:
32 Object *object;
33 std::string objectString;
34 std::vector<Index> indices;
35 fmatvec::VecV u0;
36 fmatvec::MatV JRel;
37 public:
38 GeneralizedInitialVelocity(const std::string &name="");
39 ~GeneralizedInitialVelocity() override { }
40
41 void setObject(Object *object_) { object = object_; }
42 void setIndices(const std::vector<Index> &indices_) { indices = indices_; }
43 void setValues(const fmatvec::Vec &u0_) { u0 <<= u0_; }
44
45 void calcSize() override;
46 void calclaSize(int j) override;
47 void calccorrSize(int j) override;
48
49 void updateGeneralizedVelocities() override;
50
51 void updategd() override;
52 void updateW(int i=0) override;
53
54 void updateWRef(fmatvec::Mat &WParent, int j=0) override;
55
56 void init(InitStage stage, const InitConfigSet &config) override;
57 void initializeUsingXML(xercesc::DOMElement * element) override;
58 };
59
60}
61
62#endif
InitStage
The stages of the initialization.
Definition: element.h:62
std::string name
name of element
Definition: element.h:260
Definition: generalized_initial_velocity.h:30
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: generalized_initial_velocity.cc:79
void calclaSize(int j) override
calculates size of contact force parameters
Definition: generalized_initial_velocity.cc:45
void updateWRef(fmatvec::Mat &WParent, int j=0) override
references to contact force direction matrix of dynamic system parent
Definition: generalized_initial_velocity.cc:73
Definition: initial_condition.h:27
class for all objects having own dynamics and mass
Definition: object.h:42
namespace MBSim
Definition: bilateral_constraint.cc:30