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