1 /* Siconos is a program dedicated to modeling, simulation and control
2  * of non smooth dynamical systems.
3  *
4  * Copyright 2021 INRIA.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17 */
18 
19 #ifndef SiconosFwd_hpp
20 #define SiconosFwd_hpp
21 
22 /*! \file SiconosFwd.hpp
23   Forward declarations for numerics and kernel.
24 */
25 
26 // #include "SiconosSerialization.hpp"
27 #include "SiconosPointers.hpp"
28 #include "NumericsFwd.h"
29 
30 // --- Numerics ---
31 
32 // #include <MixedLinearComplementarityProblem.h>
33 // #include <SolverOptions.h>
34 // #include <NumericsMatrix.h>
35 
36 TYPEDEF_SPTR(MixedLinearComplementarityProblem)
37 TYPEDEF_SPTR(SolverOptions)
38 TYPEDEF_SPTR(NumericsMatrix)
39 // ----------------
40 
41 // --- Kernel ---
42 
43 DEFINE_SPTR(BlockCSRMatrix)
44 
45 DEFINE_SPTR(Interaction)
46 
47 DEFINE_SPTR(NonSmoothDynamicalSystem)
48 DEFINE_SPTR(LinearComplementaritySystemsNSDS)
49 
50 // --- Non-Smooth problems ---
51 DEFINE_SPTR(OneStepNSProblem)
52 DEFINE_SPTR(QP)
53 DEFINE_SPTR(LinearOSNS)
54 DEFINE_SPTR(FrictionContact)
55 DEFINE_SPTR(RollingFrictionContact)
56 DEFINE_SPTR(LCP)
57 DEFINE_SPTR(AVI)
58 DEFINE_SPTR(MLCP)
59 DEFINE_SPTR(MLCPProjectOnConstraints)
60 DEFINE_SPTR(Relay)
61 DEFINE_SPTR(Equality)
62 DEFINE_SPTR(GenericMechanical)
63 DEFINE_SPTR(MultipleImpact)
64 // ----------------------------
65 
66 
67 DEFINE_SPTR(OneStepIntegrator)
68 
69 DEFINE_SPTR(Relation)
70 
71 DEFINE_SPTR(FirstOrderR)
72 
73 DEFINE_SPTR(Simulation)
74 DEFINE_SPTR(EventDriven)
75 DEFINE_SPTR(TimeStepping)
76 DEFINE_SPTR(EventsManager)
77 DEFINE_SPTR(InteractionManager)
78 
79 DEFINE_SPTR(RelayNSL)
80 DEFINE_SPTR(MixedComplementarityConditionNSL)
81 DEFINE_SPTR(NormalConeNSL)
82 
83 DEFINE_SPTR(TimeDiscretisation)
84 
85 // Dynamical systems
86 DEFINE_SPTR(DynamicalSystem)
87 DEFINE_SPTR(SecondOrderDS)
88 DEFINE_SPTR(LagrangianLinearTIDS)
89 DEFINE_SPTR(LagrangianLinearDiagonalDS)
90 DEFINE_SPTR(NewtonEulerDS)
91 
92 DEFINE_SPTR(FirstOrderNonLinearDS)
93 DEFINE_SPTR(FirstOrderLinearDS)
94 DEFINE_SPTR(FirstOrderLinearTIDS)
95 
96 DEFINE_SPTR(Event)
97 DEFINE_SPTR(NonSmoothLaw)
98 
99 DEFINE_SPTR(MatrixIntegrator)
100 DEFINE_SPTR(PluggedObject)
101 DEFINE_SPTR(SubPluggedObject)
102 DEFINE_SPTR_STRUCT(ExtraAdditionalTerms)
103 
104 DEFINE_SPTR(SiconosMatrix)
105 DEFINE_SPTR(SimpleMatrix)
106 DEFINE_SPTR(BlockMatrix)
107 DEFINE_SPTR(SiconosVector)
108 DEFINE_SPTR(BlockVector)
109 
110 DEFINE_SPTR(OSNSMatrix)
111 
112 DEFINE_SPTR(SiconosMemory)
113 
114 DEFINE_SPTR(NewtonEulerR)
115 DEFINE_SPTR(NewtonEuler1DR)
116 DEFINE_SPTR(NewtonEuler3DR)
117 DEFINE_SPTR(NewtonEuler5DR)
118 
119 // OSI
120 DEFINE_SPTR(EulerMoreauOSI)
121 DEFINE_SPTR(MoreauJeanOSI)
122 DEFINE_SPTR(MoreauJeanBilbaoOSI)
123 DEFINE_SPTR(MoreauJeanGOSI)
124 DEFINE_SPTR(MoreauJeanCombinedProjectionOSI)
125 DEFINE_SPTR(MoreauJeanDirectProjectionOSI)
126 DEFINE_SPTR(LsodarOSI)
127 DEFINE_SPTR(Hem5OSI)
128 DEFINE_SPTR(D1MinusLinearOSI)
129 DEFINE_SPTR(SchatzmanPaoliOSI)
130 DEFINE_SPTR(ZeroOrderHoldOSI)
131 DEFINE_SPTR(NewMarkAlphaOSI);
132 
133 
134 // Graph things
135 DEFINE_SPTR_STRUCT(InteractionProperties)
136 DEFINE_SPTR_STRUCT(GraphProperties)
137 DEFINE_SPTR_STRUCT(DynamicalSystemsGraph)
138 DEFINE_SPTR_STRUCT(InteractionsGraph)
139 
140 #ifndef _F2C_INCLUDE_H
141 typedef int integer;
142 typedef double doublereal;
143 #endif
144 
145 TYPEDEF_SAPTR(integer)
146 TYPEDEF_SAPTR(doublereal)
147 TYPEDEF_SPTR(integer)
148 TYPEDEF_SPTR(doublereal)
149 
150 #endif
151