KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
excavator_utility.h
Go to the documentation of this file.
1 #ifndef EXCAVATOR_UTILITY_H
2 #define EXCAVATOR_UTILITY_H
3 
4 #include "GeometryFunctions.h"
5 
6 namespace Kratos {
7 
8  class KRATOS_API(DEM_APPLICATION) ExcavatorUtility {
9 
10  public:
11 
13 
14  ExcavatorUtility(ModelPart& rModelPart,
15  const double angular_velocity_of_arm_x,
16  const double coordinates_of_arm_articulation_y,
17  const double coordinates_of_arm_articulation_z,
18  const double arm_start_time,
19  const double arm_stop_time,
20  const double angular_velocity_of_bucket_x,
21  const double initial_coordinates_of_bucket_articulation_y,
22  const double initial_coordinates_of_bucket_articulation_z,
23  const double bucket_start_time,
24  const double bucket_stop_time,
25  const double time_to_lift_the_bucket,
26  const double time_to_stop_lifting_the_bucket,
27  const double bucket_lifting_velocity_z);
28 
30  virtual ~ExcavatorUtility();
31 
32  void ExecuteBeforeSolutionLoop();
33 
34  void ExecuteInitializeSolutionStep();
35 
37  virtual std::string Info() const;
38 
40  virtual void PrintInfo(std::ostream& rOStream) const;
41 
43  virtual void PrintData(std::ostream& rOStream) const;
44 
45  protected:
46 
47  ModelPart& mrModelPart; //EL SUBMODELPART QUE TOQUE
50  double mEccentricity;
56  double mArmStartTime;
58  double mArmStopTime;
63 
64  private:
65 
68 
69  }; // Class ExcavatorUtility
70 } // namespace Kratos
71 
72 #endif // EXCAVATOR_UTILITY_H
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: excavator_utility.h:8
KRATOS_CLASS_POINTER_DEFINITION(ExcavatorUtility)
array_1d< double, 3 > mCoordinatesOfStatorCenter
Definition: excavator_utility.h:55
array_1d< double, 3 > mLocalAxis2
Definition: excavator_utility.h:52
array_1d< double, 3 > mW2
Definition: excavator_utility.h:49
array_1d< double, 3 > mLocalAxis1
Definition: excavator_utility.h:51
double mBucketStopTime
Definition: excavator_utility.h:59
double mEccentricity
Definition: excavator_utility.h:50
array_1d< double, 3 > mLocalAxis3
Definition: excavator_utility.h:53
ModelPart & mrModelPart
Definition: excavator_utility.h:47
double mArmStopTime
Definition: excavator_utility.h:58
array_1d< double, 3 > mBucketLiftingVelocity
Definition: excavator_utility.h:62
double mTimeLiftBucket
Definition: excavator_utility.h:60
array_1d< double, 3 > mInitialCoordinatesOfRotorCenter
Definition: excavator_utility.h:54
array_1d< double, 3 > mW1
Definition: excavator_utility.h:48
double mTimeStopLiftBucket
Definition: excavator_utility.h:61
double mBucketStartTime
Definition: excavator_utility.h:57
double mArmStartTime
Definition: excavator_utility.h:56
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21