20#ifndef _KINETICEXCITATION_H_
21#define _KINETICEXCITATION_H_
23#include <mbsim/links/floating_frame_link.h>
24#include <mbsim/functions/function.h>
26#include "mbsim/utils/boost_parameters.h"
27#include "mbsim/utils/openmbv_utils.h"
50 void updateGeneralizedPositions()
override { updrrel =
false; }
51 void updateGeneralizedVelocities()
override { updvrel =
false; }
52 void updatelaF()
override;
53 void updatelaM()
override;
55 void init(
InitStage stage,
const InitConfigSet &config)
override;
57 bool isActive()
const override {
return true; }
80 using FloatingFrameLink::connect;
89 void initializeUsingXML(xercesc::DOMElement *element)
override;
91 BOOST_PARAMETER_MEMBER_FUNCTION( (
void), enableOpenMBV, tag, (optional (sideOfInteraction,(OpenMBVInteractionArrow::SideOfInteraction),OpenMBVInteractionArrow::action)(scaleLength,(
double),1)(scaleSize,(
double),1)(referencePoint,(OpenMBVArrow::ReferencePoint),OpenMBVArrow::toPoint)(colorRepresentation,(OpenMBVArrow::ColorRepresentation),OpenMBVArrow::none)(minimalColorValue,(
double),0)(maximalColorValue,(
double),1)(diffuseColor,(
const fmatvec::Vec3&),fmatvec::Vec3(std::vector<double>{-1,1,1}))(transparency,(
double),0)(pointSize,(
double),0)(lineWidth,(
double),0))) {
92 ombvArrow = std::shared_ptr<OpenMBVInteractionArrow>(
new OpenMBVInteractionArrow(sideOfInteraction,scaleLength,scaleSize,OpenMBVArrow::toHead,referencePoint,colorRepresentation,minimalColorValue,maximalColorValue,diffuseColor,transparency,pointSize,lineWidth));
101 std::shared_ptr<OpenMBVInteractionArrow> ombvArrow;
102 std::vector<std::shared_ptr<OpenMBV::Arrow>> openMBVForce, openMBVMoment;
108 double evalNone() {
return 1; }
109 double evalAboluteForce() {
return nrm2(evalForce()); }
110 double evalAboluteMoment() {
return nrm2(evalMoment()); }
InitStage
The stages of the initialization.
Definition: element.h:62
std::string name
name of element
Definition: element.h:260
floating frame link
Definition: floating_frame_link.h:32
fmatvec::Mat3xV forceDir
directions of force and moment in frame of reference
Definition: floating_frame_link.h:80
std::vector< Frame * > frame
array in which all frames are listed, connecting bodies via a link
Definition: frame_link.h:83
cartesian frame on bodies used for application of e.g. links and loads
Definition: frame.h:39
Definition: function.h:53
kinetic excitations given by time dependent functions
Definition: kinetic_excitation.h:37
void plot() override
plots time dependent data
Definition: kinetic_excitation.cc:100
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: kinetic_excitation.cc:48
void connect(MBSim::Frame *frame_)
Definition: kinetic_excitation.h:85
void setForceDirection(const fmatvec::Mat3xV &fd)
Definition: kinetic_excitation.h:64
bool gActiveChanged() override
Definition: kinetic_excitation.h:59
Function< fmatvec::VecV(double)> * F
portions of the force / moment in the specific directions
Definition: kinetic_excitation.h:99
bool isSingleValued() const override
asks the link if it contains single valued force laws that contribute to the right-hand side vector h
Definition: kinetic_excitation.h:58
void setMomentDirection(const fmatvec::Mat3xV &md)
Definition: kinetic_excitation.h:69
void setForceFunction(Function< fmatvec::VecV(double)> *func)
Set the force excitation. forceDir*func(t) is the applied force vector in space. This force vector is...
Definition: kinetic_excitation.cc:88
bool isActive() const override
Definition: kinetic_excitation.h:57
KineticExcitation(const std::string &name="")
constructor
Definition: kinetic_excitation.cc:35
~KineticExcitation() override
destructor
Definition: kinetic_excitation.cc:43
void setMomentFunction(Function< fmatvec::VecV(double)> *func)
see setForce
Definition: kinetic_excitation.cc:94
namespace MBSim
Definition: bilateral_constraint.cc:30