diff --git a/CMakeLists.txt b/CMakeLists.txt index 74cf91f..890a479 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,295 @@ -cmake_minimum_required(VERSION 3.26) +cmake_minimum_required(VERSION 3.16) + +project(OndselSolver VERSION 1.0.1 DESCRIPTION "Assembly Constraints and Multibody Dynamics code") + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) -# add_library(some_target main.cpp) +set(ONDSEL_EXPORT + MbDCode/Abs.cpp + MbDCode/AbsConstraint.cpp + MbDCode/AccICKineNewtonRaphson.cpp + MbDCode/AccICNewtonRaphson.cpp + MbDCode/AccKineNewtonRaphson.cpp + MbDCode/AccNewtonRaphson.cpp + MbDCode/AngleJoint.cpp + MbDCode/AngleZIecJec.cpp + MbDCode/AngleZIeqcJec.cpp + MbDCode/AngleZIeqcJeqc.cpp + MbDCode/AnyGeneralSpline.cpp + MbDCode/AnyPosICNewtonRaphson.cpp + MbDCode/ArcTan.cpp + MbDCode/ArcTan2.cpp + MbDCode/Array.cpp + MbDCode/ASMTAnimationParameters.cpp + MbDCode/ASMTAssembly.cpp + MbDCode/ASMTConstantGravity.cpp + MbDCode/ASMTConstraintSet.cpp + MbDCode/ASMTCylindricalJoint.cpp + MbDCode/ASMTExtrusion.cpp + MbDCode/ASMTFixedJoint.cpp + MbDCode/ASMTForceTorque.cpp + MbDCode/ASMTGeneralMotion.cpp + MbDCode/ASMTItem.cpp + MbDCode/ASMTItemIJ.cpp + MbDCode/ASMTJoint.cpp + MbDCode/ASMTKinematicIJ.cpp + MbDCode/ASMTMarker.cpp + MbDCode/ASMTMotion.cpp + MbDCode/ASMTPart.cpp + MbDCode/ASMTPointInPlaneJoint.cpp + MbDCode/ASMTPrincipalMassMarker.cpp + MbDCode/ASMTRefCurve.cpp + MbDCode/ASMTRefItem.cpp + MbDCode/ASMTRefPoint.cpp + MbDCode/ASMTRefSurface.cpp + MbDCode/ASMTRevoluteJoint.cpp + MbDCode/ASMTRotationalMotion.cpp + MbDCode/ASMTSimulationParameters.cpp + MbDCode/ASMTSpatialContainer.cpp + MbDCode/ASMTSpatialItem.cpp + MbDCode/ASMTSphericalJoint.cpp + MbDCode/ASMTTime.cpp + MbDCode/ASMTTranslationalMotion.cpp + MbDCode/ASMTTranslationalJoint.cpp + MbDCode/ASMTUniversalJoint.cpp + MbDCode/AtPointConstraintIJ.cpp + MbDCode/AtPointConstraintIqcJc.cpp + MbDCode/AtPointConstraintIqcJqc.cpp + MbDCode/AtPointConstraintIqctJqc.cpp + MbDCode/AtPointJoint.cpp + MbDCode/BasicIntegrator.cpp + MbDCode/BasicQuasiIntegrator.cpp + MbDCode/BasicUserFunction.cpp + MbDCode/CADSystem.cpp + MbDCode/CartesianFrame.cpp + MbDCode/CompoundJoint.cpp + MbDCode/Constant.cpp + MbDCode/ConstantGravity.cpp + MbDCode/ConstantVelocityJoint.cpp + MbDCode/Constraint.cpp + MbDCode/ConstraintIJ.cpp + MbDCode/ConstVelConstraintIJ.cpp + MbDCode/ConstVelConstraintIqcJc.cpp + MbDCode/ConstVelConstraintIqcJqc.cpp + MbDCode/Cosine.cpp + MbDCode/CREATE.cpp + MbDCode/CylindricalJoint.cpp + MbDCode/CylSphJoint.cpp + MbDCode/DifferentiatedGeneralSpline.cpp + MbDCode/EndFrameqct2.cpp + MbDCode/EulerAngles.cpp + MbDCode/EulerAnglesDDot.cpp + MbDCode/EulerAnglesDot.cpp + MbDCode/Exponential.cpp + MbDCode/ExternalSystem.cpp + MbDCode/FunctionFromData.cpp + MbDCode/FunctionXcParameter.cpp + MbDCode/FunctionXY.cpp + MbDCode/GeneralSpline.cpp + MbDCode/Ln.cpp + MbDCode/Log10.cpp + MbDCode/LogN.cpp + MbDCode/Negative.cpp + MbDCode/PosVelAccData.cpp + MbDCode/DiagonalMatrix.cpp + MbDCode/DifferenceOperator.cpp + MbDCode/DirectionCosineConstraintIJ.cpp + MbDCode/DirectionCosineConstraintIqcJc.cpp + MbDCode/DirectionCosineConstraintIqcJqc.cpp + MbDCode/DirectionCosineConstraintIqctJqc.cpp + MbDCode/DirectionCosineIecJec.cpp + MbDCode/DirectionCosineIeqcJec.cpp + MbDCode/DirectionCosineIeqcJeqc.cpp + MbDCode/DirectionCosineIeqctJeqc.cpp + MbDCode/DiscontinuityError.cpp + MbDCode/DispCompIecJecIe.cpp + MbDCode/DispCompIecJecKec.cpp + MbDCode/DispCompIecJecKeqc.cpp + MbDCode/DispCompIecJecO.cpp + MbDCode/DispCompIeqcJecIe.cpp + MbDCode/DispCompIeqcJecKeqc.cpp + MbDCode/DispCompIeqcJecO.cpp + MbDCode/DispCompIeqcJeqcIe.cpp + MbDCode/DispCompIeqcJeqcKeqc.cpp + MbDCode/DispCompIeqcJeqcKeqct.cpp + MbDCode/DispCompIeqcJeqcO.cpp + MbDCode/DispCompIeqctJeqcIe.cpp + MbDCode/DispCompIeqctJeqcKeqct.cpp + MbDCode/DispCompIeqctJeqcO.cpp + MbDCode/DistanceConstraintIJ.cpp + MbDCode/DistanceConstraintIqcJc.cpp + MbDCode/DistanceConstraintIqcJqc.cpp + MbDCode/DistanceConstraintIqctJqc.cpp + MbDCode/DistancexyConstraintIJ.cpp + MbDCode/DistancexyConstraintIqcJc.cpp + MbDCode/DistancexyConstraintIqcJqc.cpp + MbDCode/DistIecJec.cpp + MbDCode/DistIeqcJec.cpp + MbDCode/DistIeqcJeqc.cpp + MbDCode/DistIeqctJeqc.cpp + MbDCode/DistxyIecJec.cpp + MbDCode/DistxyIeqcJec.cpp + MbDCode/DistxyIeqcJeqc.cpp + MbDCode/DistxyIeqctJeqc.cpp + MbDCode/EndFramec.cpp + MbDCode/EndFrameqc.cpp + MbDCode/EndFrameqct.cpp + MbDCode/EulerAngleszxz.cpp + MbDCode/EulerAngleszxzDDot.cpp + MbDCode/EulerAngleszxzDot.cpp + MbDCode/EulerArray.cpp + MbDCode/EulerConstraint.cpp + MbDCode/EulerParameters.cpp + MbDCode/EulerParametersDDot.cpp + MbDCode/EulerParametersDot.cpp + MbDCode/ExpressionX.cpp + MbDCode/FixedJoint.cpp + MbDCode/ForceTorqueData.cpp + MbDCode/ForceTorqueItem.cpp + MbDCode/FullColumn.cpp + MbDCode/FullMatrix.cpp + MbDCode/FullMotion.cpp + MbDCode/FullRow.cpp + MbDCode/Function.cpp + MbDCode/FunctionWithManyArgs.cpp + MbDCode/FunctionX.cpp + MbDCode/GearConstraintIJ.cpp + MbDCode/GearConstraintIqcJc.cpp + MbDCode/GearConstraintIqcJqc.cpp + MbDCode/GearJoint.cpp + MbDCode/GEFullMat.cpp + MbDCode/GEFullMatFullPv.cpp + MbDCode/GEFullMatParPv.cpp + MbDCode/GESpMat.cpp + MbDCode/GESpMatFullPv.cpp + MbDCode/GESpMatFullPvPosIC.cpp + MbDCode/GESpMatParPv.cpp + MbDCode/GESpMatParPvMarko.cpp + MbDCode/GESpMatParPvMarkoFast.cpp + MbDCode/GESpMatParPvPrecise.cpp + MbDCode/ICKineIntegrator.cpp + MbDCode/IndependentVariable.cpp + MbDCode/InLineJoint.cpp + MbDCode/InPlaneJoint.cpp + MbDCode/Integrator.cpp + MbDCode/IntegratorInterface.cpp + MbDCode/Item.cpp + MbDCode/Joint.cpp + MbDCode/KineIntegrator.cpp + MbDCode/KinematicIeJe.cpp + MbDCode/LDUFullMatParPv.cpp + MbDCode/LDUSpMat.cpp + MbDCode/LDUSpMatParPv.cpp + MbDCode/LDUSpMatParPvMarko.cpp + MbDCode/LDUSpMatParPvPrecise.cpp + MbDCode/LinearMultiStepMethod.cpp + MbDCode/LineInPlaneJoint.cpp + MbDCode/MarkerFrame.cpp + MbDCode/Math.cpp + MbDCode/MatrixDecomposition.cpp + MbDCode/MatrixGaussElimination.cpp + MbDCode/MatrixLDU.cpp + MbDCode/MatrixSolver.cpp + MbDCode/MaximumIterationError.cpp + MbDCode/NewtonRaphson.cpp + MbDCode/NewtonRaphsonError.cpp + MbDCode/NoRotationJoint.cpp + MbDCode/NotKinematicError.cpp + MbDCode/Numeric.cpp + MbDCode/OrbitAnglezIecJec.cpp + MbDCode/OrbitAnglezIeqcJec.cpp + MbDCode/OrbitAnglezIeqcJeqc.cpp + MbDCode/Orientation.cpp + MbDCode/ParallelAxesJoint.cpp + MbDCode/Part.cpp + MbDCode/PartFrame.cpp + MbDCode/PerpendicularJoint.cpp + MbDCode/PlanarJoint.cpp + MbDCode/PointInLineJoint.cpp + MbDCode/PointInPlaneJoint.cpp + MbDCode/PosICKineNewtonRaphson.cpp + MbDCode/PosICNewtonRaphson.cpp + MbDCode/PosKineNewtonRaphson.cpp + MbDCode/PosNewtonRaphson.cpp + MbDCode/Power.cpp + MbDCode/PrescribedMotion.cpp + MbDCode/Product.cpp + MbDCode/QuasiIntegrator.cpp + MbDCode/RackPinConstraintIJ.cpp + MbDCode/RackPinConstraintIqcJc.cpp + MbDCode/RackPinConstraintIqcJqc.cpp + MbDCode/RackPinJoint.cpp + MbDCode/Reciprocal.cpp + MbDCode/RedundantConstraint.cpp + MbDCode/RevCylJoint.cpp + MbDCode/RevoluteJoint.cpp + MbDCode/RowTypeMatrix.cpp + MbDCode/ScalarNewtonRaphson.cpp + MbDCode/ScrewConstraintIJ.cpp + MbDCode/ScrewConstraintIqcJc.cpp + MbDCode/ScrewConstraintIqcJqc.cpp + MbDCode/ScrewJoint.cpp + MbDCode/SimulationStoppingError.cpp + MbDCode/Sine.cpp + MbDCode/SingularMatrixError.cpp + MbDCode/Solver.cpp + MbDCode/SparseColumn.cpp + MbDCode/SparseMatrix.cpp + MbDCode/SparseRow.cpp + MbDCode/SparseVector.cpp + MbDCode/SphericalJoint.cpp + MbDCode/SphSphJoint.cpp + MbDCode/StableBackwardDifference.cpp + MbDCode/LDUFullMat.cpp + MbDCode/StateData.cpp + MbDCode/Sum.cpp + MbDCode/Symbolic.cpp + MbDCode/SymbolicParser.cpp + MbDCode/SyntaxError.cpp + MbDCode/System.cpp + MbDCode/SystemNewtonRaphson.cpp + MbDCode/SystemSolver.cpp + MbDCode/Time.cpp + MbDCode/TooManyTriesError.cpp + MbDCode/TooSmallStepSizeError.cpp + MbDCode/Translation.cpp + MbDCode/TranslationalJoint.cpp + MbDCode/TranslationConstraintIJ.cpp + MbDCode/TranslationConstraintIqcJc.cpp + MbDCode/TranslationConstraintIqcJqc.cpp + MbDCode/TranslationConstraintIqctJqc.cpp + MbDCode/Units.cpp + MbDCode/UniversalJoint.cpp + MbDCode/UserFunction.cpp + MbDCode/Variable.cpp + MbDCode/FullVector.cpp + MbDCode/VectorNewtonRaphson.cpp + MbDCode/VelICKineSolver.cpp + MbDCode/VelICSolver.cpp + MbDCode/VelKineSolver.cpp + MbDCode/VelSolver.cpp + MbDCode/ZRotation.cpp + MbDCode/ZTranslation.cpp + MbDCode/ASMTAssembly.cpp +) + add_executable(ondsel-solver MbDCode/MbDCode.cpp) + +add_library(OndselSolver + STATIC ${ONDSEL_EXPORT} +) + add_subdirectory(MbDCode) + +set_target_properties(OndselSolver + PROPERTIES VERSION ${PROJECT_VERSION} + SOVERSION 1 +) + +configure_file(OndselSolver.pc.in OndselSolver.pc @ONLY) +install(TARGETS OndselSolver + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(FILES ${CMAKE_BINARY_DIR}/OndselSolver.pc + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig) diff --git a/MbDCode/CMakeLists.txt b/MbDCode/CMakeLists.txt index 85c099a..eeb39c6 100644 --- a/MbDCode/CMakeLists.txt +++ b/MbDCode/CMakeLists.txt @@ -266,3 +266,274 @@ target_sources(ondsel-solver PUBLIC ZTranslation.cpp ASMTAssembly.cpp ) + +target_sources(OndselSolver PUBLIC + Abs.h + AbsConstraint.h + AccICKineNewtonRaphson.h + AccICNewtonRaphson.h + AccKineNewtonRaphson.h + AccNewtonRaphson.h + AngleJoint.h + AngleZIecJec.h + AngleZIeqcJec.h + AngleZIeqcJeqc.h + AnyGeneralSpline.h + AnyPosICNewtonRaphson.h + ArcTan.h + ArcTan2.h + Array.h + ASMTAnimationParameters.h + ASMTAssembly.h + ASMTConstantGravity.h + ASMTConstraintSet.h + ASMTCylindricalJoint.h + ASMTExtrusion.h + ASMTFixedJoint.h + ASMTForceTorque.h + ASMTGeneralMotion.h + ASMTItem.h + ASMTItemIJ.h + ASMTJoint.h + ASMTKinematicIJ.h + ASMTMarker.h + ASMTMotion.h + ASMTPart.h + ASMTPointInPlaneJoint.h + ASMTPrincipalMassMarker.h + ASMTRefCurve.h + ASMTRefItem.h + ASMTRefPoint.h + ASMTRefSurface.h + ASMTRevoluteJoint.h + ASMTRotationalMotion.h + ASMTSimulationParameters.h + ASMTSpatialContainer.h + ASMTSpatialItem.h + ASMTSphericalJoint.h + ASMTTime.h + ASMTTranslationalMotion.h + ASMTTranslationalJoint.h + ASMTUniversalJoint.h + AtPointConstraintIJ.h + AtPointConstraintIqcJc.h + AtPointConstraintIqcJqc.h + AtPointConstraintIqctJqc.h + AtPointJoint.h + BasicIntegrator.h + BasicQuasiIntegrator.h + BasicUserFunction.h + CADSystem.h + CartesianFrame.h + CompoundJoint.h + Constant.h + ConstantGravity.h + ConstantVelocityJoint.h + Constraint.h + ConstraintIJ.h + ConstVelConstraintIJ.h + ConstVelConstraintIqcJc.h + ConstVelConstraintIqcJqc.h + Cosine.h + CREATE.h + CylindricalJoint.h + CylSphJoint.h + DifferentiatedGeneralSpline.h + EndFrameqct2.h + EulerAngles.h + EulerAnglesDDot.h + EulerAnglesDot.h + Exponential.h + ExternalSystem.h + FunctionFromData.h + FunctionXcParameter.h + FunctionXY.h + GeneralSpline.h + Ln.h + Log10.h + LogN.h + Negative.h + PosVelAccData.h + DiagonalMatrix.h + DifferenceOperator.h + DirectionCosineConstraintIJ.h + DirectionCosineConstraintIqcJc.h + DirectionCosineConstraintIqcJqc.h + DirectionCosineConstraintIqctJqc.h + DirectionCosineIecJec.h + DirectionCosineIeqcJec.h + DirectionCosineIeqcJeqc.h + DirectionCosineIeqctJeqc.h + DiscontinuityError.h + DispCompIecJecIe.h + DispCompIecJecKec.h + DispCompIecJecKeqc.h + DispCompIecJecO.h + DispCompIeqcJecIe.h + DispCompIeqcJecKeqc.h + DispCompIeqcJecO.h + DispCompIeqcJeqcIe.h + DispCompIeqcJeqcKeqc.h + DispCompIeqcJeqcKeqct.h + DispCompIeqcJeqcO.h + DispCompIeqctJeqcIe.h + DispCompIeqctJeqcKeqct.h + DispCompIeqctJeqcO.h + DistanceConstraintIJ.h + DistanceConstraintIqcJc.h + DistanceConstraintIqcJqc.h + DistanceConstraintIqctJqc.h + DistancexyConstraintIJ.h + DistancexyConstraintIqcJc.h + DistancexyConstraintIqcJqc.h + DistIecJec.h + DistIeqcJec.h + DistIeqcJeqc.h + DistIeqctJeqc.h + DistxyIecJec.h + DistxyIeqcJec.h + DistxyIeqcJeqc.h + DistxyIeqctJeqc.h + EndFramec.h + EndFrameqc.h + EndFrameqct.h + enum.h + EulerAngleszxz.h + EulerAngleszxzDDot.h + EulerAngleszxzDot.h + EulerArray.h + EulerConstraint.h + EulerParameters.h + EulerParametersDDot.h + EulerParametersDot.h + ExpressionX.h + FixedJoint.h + ForceTorqueData.h + ForceTorqueItem.h + FullColumn.h + FullMatrix.h + FullMotion.h + FullRow.h + Function.h + FunctionWithManyArgs.h + FunctionX.h + GearConstraintIJ.h + GearConstraintIqcJc.h + GearConstraintIqcJqc.h + GearJoint.h + GEFullMat.h + GEFullMatFullPv.h + GEFullMatParPv.h + GESpMat.h + GESpMatFullPv.h + GESpMatFullPvPosIC.h + GESpMatParPv.h + GESpMatParPvMarko.h + GESpMatParPvMarkoFast.h + GESpMatParPvPrecise.h + ICKineIntegrator.h + IndependentVariable.h + InLineJoint.h + InPlaneJoint.h + Integrator.h + IntegratorInterface.h + Item.h + Joint.h + KineIntegrator.h + KinematicIeJe.h + LDUFullMatParPv.h + LDUSpMat.h + LDUSpMatParPv.h + LDUSpMatParPvMarko.h + LDUSpMatParPvPrecise.h + LinearMultiStepMethod.h + LineInPlaneJoint.h + MarkerFrame.h + Math.h + MatrixDecomposition.h + MatrixGaussElimination.h + MatrixLDU.h + MatrixSolver.h + MaximumIterationError.h + MbDCode.h + NewtonRaphson.h + NewtonRaphsonError.h + NoRotationJoint.h + NotKinematicError.h + Numeric.h + OrbitAnglezIecJec.h + OrbitAnglezIeqcJec.h + OrbitAnglezIeqcJeqc.h + Orientation.h + ParallelAxesJoint.h + Part.h + PartFrame.h + PerpendicularJoint.h + PlanarJoint.h + PointInLineJoint.h + PointInPlaneJoint.h + PosICKineNewtonRaphson.h + PosICNewtonRaphson.h + PosKineNewtonRaphson.h + PosNewtonRaphson.h + Power.h + PrescribedMotion.h + Product.h + QuasiIntegrator.h + RackPinConstraintIJ.h + RackPinConstraintIqcJc.h + RackPinConstraintIqcJqc.h + RackPinJoint.h + Reciprocal.h + RedundantConstraint.h + resource.h + RevCylJoint.h + RevoluteJoint.h + RowTypeMatrix.h + ScalarNewtonRaphson.h + ScrewConstraintIJ.h + ScrewConstraintIqcJc.h + ScrewConstraintIqcJqc.h + ScrewJoint.h + SimulationStoppingError.h + Sine.h + SingularMatrixError.h + Solver.h + SparseColumn.h + SparseMatrix.h + SparseRow.h + SparseVector.h + SphericalJoint.h + SphSphJoint.h + StableBackwardDifference.h + LDUFullMat.h + StateData.h + Sum.h + Symbolic.h + SymbolicParser.h + SyntaxError.h + System.h + SystemNewtonRaphson.h + SystemSolver.h + Time.h + TooManyTriesError.h + TooSmallStepSizeError.h + Translation.h + TranslationalJoint.h + TranslationConstraintIJ.h + TranslationConstraintIqcJc.h + TranslationConstraintIqcJqc.h + TranslationConstraintIqctJqc.h + Units.h + UniversalJoint.h + UserFunction.h + Variable.h + FullVector.h + VectorNewtonRaphson.h + VelICKineSolver.h + VelICSolver.h + VelKineSolver.h + VelSolver.h + ZRotation.h + ZTranslation.h +) \ No newline at end of file diff --git a/MbDCode/MbDCode.cpp b/MbDCode/MbDCode.cpp index 4adb2f3..da440d9 100644 --- a/MbDCode/MbDCode.cpp +++ b/MbDCode/MbDCode.cpp @@ -12,10 +12,7 @@ * @brief Program to assemble a piston crank system. *********************************************************************/ -#include -#include #include - #include "CADSystem.h" #include "CREATE.h" #include "GESpMatParPvPrecise.h" diff --git a/OndselSolver.pc.in b/OndselSolver.pc.in new file mode 100644 index 0000000..076f352 --- /dev/null +++ b/OndselSolver.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ + +Name: @PROJECT_NAME@ +Description: @PROJECT_DESCRIPTION@ +Version: @PROJECT_VERSION@ + +Requires: +Libs: -L${libdir} -lOndselSolver +Cflags: -I${includedir} \ No newline at end of file