1 // =============================================================================
2 // PROJECT CHRONO - http://projectchrono.org
3 //
4 // Copyright (c) 2021 projectchrono.org
5 // All right reserved.
6 //
7 // Use of this source code is governed by a BSD-style license that can be found
8 // in the LICENSE file at the top level of the distribution and at
9 // http://projectchrono.org/license-chrono.txt.
10 //
11 // =============================================================================
12 // Authors: Radu Serban
13 // =============================================================================
14 //
15 // Definition of an additional MPI node not directly involved in co-simulation.
16 //
17 // The global reference frame has Z up, X towards the front of the vehicle, and
18 // Y pointing to the left.
19 //
20 // =============================================================================
21 
22 #ifndef CH_VEHCOSIM_OTHER_NODE_H
23 #define CH_VEHCOSIM_OTHER_NODE_H
24 
25 #include "chrono_vehicle/cosim/ChVehicleCosimBaseNode.h"
26 
27 namespace chrono {
28 namespace vehicle {
29 
30 /// @addtogroup vehicle_cosim
31 /// @{
32 
33 /// Definition of an additional MPI node not directly involved in co-simulation.
34 /// Such nodes can be used for distributed terrain simulation.
35 class ChVehicleCosimOtherNode : public ChVehicleCosimBaseNode {
36   public:
ChVehicleCosimOtherNode()37     ChVehicleCosimOtherNode() : ChVehicleCosimBaseNode("other") {}
~ChVehicleCosimOtherNode()38     ~ChVehicleCosimOtherNode() {}
39 
40     /// Return the node type as NodeType::TIRE.
GetNodeType()41     virtual NodeType GetNodeType() const override final { return NodeType::TERRAIN; }
42 
43     /// Synchronize this node.
Synchronize(int step_number,double time)44     virtual void Synchronize(int step_number, double time) override final {}
45 
46     /// Advance simulation.
Advance(double step_size)47     virtual void Advance(double step_size) override final {}
48 
49     /// Output logging and debugging data.
OutputData(int frame)50     virtual void OutputData(int frame) override final {}
51 
52     /// Output post-processing visualization data.
OutputVisualizationData(int frame)53     virtual void OutputVisualizationData(int frame) override final {}
54 };
55 
56 /// @} vehicle_cosim
57 
58 }  // end namespace vehicle
59 }  // end namespace chrono
60 
61 #endif
62