Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120815618
oscillateur.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Jul 7, 07:17
Size
1 KB
Mime Type
text/x-c++
Expires
Wed, Jul 9, 07:17 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
27254159
Attached To
rSYMKIT symkit
oscillateur.h
View Options
#ifndef OSCILLATEUR_H_
#define OSCILLATEUR_H_
#include "vector.h"
#include <initializer_list>
#include "descriptor.h"
#include <iosfwd>
enum integral_operation
{
EULER_CROMER,
NEWMARK
};
class Oscillateur : public Descriptor {
protected:
/* Vecteur contenant les paramètres libres de l'oscillateur */
Vector p;
/* Vecteur derivee de p */
Vector p_prime;
/* Foction caracterisant chaque oscillateur
* Definie virtuelle, une fonction concrète
* pour chaque sous classe de "Oscillateur"
* sera implementée.
*/
virtual Vector equation() const = 0;
/* Pour corriger la dimension des vecteurs position et vitesse */
void adjust(std::size_t);
private:
integral_operation op;
virtual void update(float) override;
public:
/* Constructeurs pour affecter les vecteurs p et p_prime
* en exploitant les constructeurs implementés dans la
* classe Vector
*/
Oscillateur(const Vector& p, const Vector& p_prime, integral_operation op = NEWMARK);
Oscillateur(const std::vector<double>&, const std::vector<double>&, integral_operation op = NEWMARK);
/* Accesseurs */
Vector getp() const;
Vector getp_prime() const;
/* Manipulateurs */
void setp(const Vector&);
void setp_prime(const Vector&);
/*
* Accesseurs et Manipulateur pour le choix de l'integrateur
*/
integral_operation getIntegrationOperation() const;
void setIntegrationOperation(integral_operation op);
/* Pour l'affichage des attributs position et vitesse du descriptor*/
virtual void affiche(std::ostream&) const override;
};
#endif
Event Timeline
Log In to Comment