diff --git a/profiles/desc/mbdyn_module.desc b/profiles/desc/mbdyn_module.desc new file mode 100644 index 0000000000..d217ff2156 --- /dev/null +++ b/profiles/desc/mbdyn_module.desc @@ -0,0 +1,70 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# This file contains descriptions of MBDYN_MODULE USE_EXPAND flags. + +FMU - This is a module to import and cosimulation of FMUs, developed using FMI standards, for MBDyn +aerodyn - This is MBDyn's module for the wind-turbine aerodynamics library AeroDyn +asynchronous-machine - The purpose of this code is the simulation of an asynchronous electrical machine as a part of a multibody model +autodiff-test - This element implements a inline joint with friction +ballbearing-contact - ball bearing contact +bullet - sci-physics/bullet module +charm - This module implements a user-defined induced velocity element based on CDI's CHARM free wake +constlaw-f90 - This directory contains an example of run-time loadable constitutive law written in Fortran 90 +constlaw-f95 - This directory contains an example of run-time loadable constitutive law written in Fortran 95 +constlaw - This directory contains an example of run-time loadable constitutive law +cont-contact - continuous contact +controller - controller module +convtest - convergence test module +cyclocopter - This module implements induced velocity models for cycloidal rotors +damper-gandhi - Gandhi, F. and Chopra, I., "An analytical model for a nonlinear elastomeric lag damper and its effect on aeromechanical stability in hover" Journal of the American Helicopter Society, Vol. 39, 1994, pp. 59-69. +damper-graall - GRAALL Damper Constitutive Law +damper-hydraulic - Hydraulic Damper Constitutive Law +damper - It implements a 1D constitutive law based on a generic nonlinear rheological formula, whose coefficients are computed by means of parameter identification from experimental measurements +diff - diff drive module +dot - dot language module +drive-test - drive test module +drive - example of run-time loadable drive +dummy - Dummy module --- does nothing, used to test the infrastructure +eu2phi - converts three Euler angles into the corresponding Euler vector +fab-electric - Library of electric components for "digital fabrication" machines +fab-motion - Library of motion transmission components for "digital fabrication" machines +fab-sbearings - Library of bearings for "digital fabrication" machines +fabricate - Library of components of "digital fabrication" machines +flightgear - flightgear module +friction - eXperimental friction model +friction3 - eXperimental friction model (2nd try) +hfelem - Harmonic Excitation Element +hid - This module registers a file driver that captures the input from HID USB devices (only tested with some joysticks) +hunt-crossley - HuntCrossley constitutive law +hydrodynamic-plain-bearing - This module implements a hydrodynamic plain bearing according to Hans Juergen Butenschoen 1976 Das hydrodynamische zylindrische Gleitlager endlicher Breite unter instationaerer Belastung +hydrodynamic-plain-bearing2 - module hydrodynamic plain bearing2 +imu - implements two uses of a IMU +indvel - This module implements a dummy induced velocity model +inline-friction - This element implements a inline joint with friction +inplane-friction - In plane friction +journal-bearing - This element implements a journal bearing with lugre friction +leapmotion - leapmotion hand +loadinc - load increment normalization +marble - marble model for icecube robot +md - MD module +mds - mds module +minmaxdrive - minmaxdrive module +multi-step-drive - multi step drive module +muscles - muscle module +namespace - namespace module +nodedistdrive - node dist drive module +nonsmooth-node - Defines a unilateral constraint in form of a contact between a node and one or more planes, optionally with friction +ns - ns1 module +octave - octave module +randdrive - rand drive module +rollercoaster - rollercoaster module +rotor-loose-coupling - rotor loose coupling +scalarfunc - example of run-time loadable scalar function +switch-drive - switch drive module +tclpgin - tcl plugin +triangular-contact - This element implements unilateral contact with friction between an arbitrary rigid body, represented by a triangular mesh, and a set of nodes with arbitrary offsets +udunits - This module adds a namespace "units" with the only function "convert", which is thus invoked as "units::convert" +uni-in-plane - This element implements the unilateral contact between a point and a plane +wheel2 - Connects 2 structural nodes: Wheel Ground +wheel4 - L. Gagnon, M. J. Richard, P. Masarati, M. Morandini, and G. Dore. Multibody simulation of tires operating on an uneven road. In Multibody Dynamics 2011, 4-7 July 2011 diff --git a/sci-physics/mbdyn/mbdyn-1.7.3_p20210925-r1.ebuild b/sci-physics/mbdyn/mbdyn-1.7.3_p20210925-r1.ebuild index 442cd6e0dc..73aa5c47fc 100644 --- a/sci-physics/mbdyn/mbdyn-1.7.3_p20210925-r1.ebuild +++ b/sci-physics/mbdyn/mbdyn-1.7.3_p20210925-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -17,75 +17,23 @@ S="${WORKDIR}/${MYP}" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64" -# mbdyn-module-FMU # needs fmi-library -# mbdyn-module-aerodyn # needs aerodyn -# mbdyn-module-cudatest # needs cuda -IUSE_MBDYN_MODULE=" - mbdyn-module-asynchronous_machine - mbdyn-module-autodiff_test - mbdyn-module-ballbearing_contact - mbdyn-module-bullet - mbdyn-module-charm - mbdyn-module-constlaw-f90 - mbdyn-module-constlaw-f95 - mbdyn-module-constlaw - mbdyn-module-cont-contact - mbdyn-module-controller - mbdyn-module-convtest - mbdyn-module-cyclocopter - mbdyn-module-damper-gandhi - mbdyn-module-damper-graall - mbdyn-module-damper-hydraulic - mbdyn-module-damper - mbdyn-module-diff - mbdyn-module-dot - mbdyn-module-drive-test - mbdyn-module-drive - mbdyn-module-dummy - mbdyn-module-eu2phi - mbdyn-module-fab-electric - mbdyn-module-fab-motion - mbdyn-module-fab-sbearings - mbdyn-module-fabricate - mbdyn-module-flightgear - mbdyn-module-friction - mbdyn-module-friction3 - mbdyn-module-hfelem - mbdyn-module-hid - mbdyn-module-hunt-crossley - mbdyn-module-hydrodynamic_plain_bearing - mbdyn-module-hydrodynamic_plain_bearing2 - mbdyn-module-imu - mbdyn-module-indvel - mbdyn-module-inline_friction - mbdyn-module-inplane_friction - mbdyn-module-journal_bearing - mbdyn-module-leapmotion - mbdyn-module-loadinc - mbdyn-module-marble - mbdyn-module-md - mbdyn-module-mds - mbdyn-module-minmaxdrive - mbdyn-module-multi_step_drive - mbdyn-module-muscles - mbdyn-module-namespace - mbdyn-module-nodedistdrive - mbdyn-module-nonsmooth-node - mbdyn-module-ns - mbdyn-module-octave - mbdyn-module-randdrive - mbdyn-module-rollercoaster - mbdyn-module-rotor-loose-coupling - mbdyn-module-scalarfunc - mbdyn-module-switch_drive - mbdyn-module-tclpgin - mbdyn-module-triangular_contact - mbdyn-module-udunits - mbdyn-module-uni_in_plane - mbdyn-module-wheel2 - mbdyn-module-wheel4 -" -IUSE="${IUSE_MBDYN_MODULE//_/-} ann arpack autodiff blender boost bullet chaco crypt +# FMU # needs fmi-library +# aerodyn # needs aerodyn +# cudatest # needs cuda +MBDYN_MODULE=( asynchronous_machine autodiff_test ballbearing_contact bullet +charm constlaw-f90 constlaw-f95 constlaw cont-contact controller convtest +cyclocopter damper-gandhi damper-graall damper-hydraulic damper diff dot +drive-test drive dummy eu2phi fab-electric fab-motion fab-sbearings fabricate +flightgear friction friction3 hfelem hid hunt-crossley +hydrodynamic_plain_bearing hydrodynamic_plain_bearing2 imu indvel +inline_friction inplane_friction journal_bearing leapmotion loadinc marble md +mds minmaxdrive multi_step_drive muscles namespace nodedistdrive nonsmooth-node +ns octave randdrive rollercoaster rotor-loose-coupling scalarfunc switch_drive +tclpgin triangular_contact udunits uni_in_plane wheel2 wheel4 ) + +MBDYN_MODULE_REPLACED=( "${MBDYN_MODULE[@]//_/-}" ) +IUSE_MBDYN_MODULE="${MBDYN_MODULE_REPLACED[@]/#/mbdyn_module_}" +IUSE="${IUSE_MBDYN_MODULE} ann arpack autodiff blender boost bullet chaco crypt debug eig ginac jdqz +mbc metis mpi multithread-naive netcdf octave openblas pam pastix pmpi python qrupdate rt sasl schur sparse superlu tests threads udunits +y12" # taucs rtai @@ -105,7 +53,7 @@ RDEPEND=" crypt? ( virtual/libcrypt ) ginac? ( sci-mathematics/ginac ) jdqz? ( sci-libs/jdqz ) - mbdyn-module-damper? ( sci-libs/gsl ) + mbdyn_module_damper? ( sci-libs/gsl ) mpi? ( virtual/mpi[cxx] ) metis? ( sci-libs/metis ) netcdf? ( sci-libs/netcdf-cxx:* ) @@ -140,10 +88,10 @@ PATCHES=( ) # "${FILESDIR}/${PN}-respect-libtool.patch" REQUIRED_USE=" - mbdyn-module-bullet? ( bullet ) - mbdyn-module-octave? ( octave ) - mbdyn-module-udunits? ( udunits ) - mbdyn-module-wheel4? ( ginac ) + mbdyn_module_bullet? ( bullet ) + mbdyn_module_octave? ( octave ) + mbdyn_module_udunits? ( udunits ) + mbdyn_module_wheel4? ( ginac ) multithread-naive? ( threads ) pmpi? ( mpi ) python? ( ${PYTHON_REQUIRED_USE} ) @@ -245,14 +193,10 @@ src_configure() { myconf+=( "--without-mpi" ) fi - declare -A mbdynmodules - for m in ${IUSE_MBDYN_MODULE} ; do - mbdynmodules[${m//_/-}]="${m/mbdyn-module-/}" - done - local usemodules="" - for u in ${IUSE_MBDYN_MODULE//_/-} ; do - use ${u} && usemodules+=" ${mbdynmodules[${u}]}" + for m in ${MBDYN_MODULE[@]} ; do + u="${m//_/-}" + use "mbdyn_module_${u}" && usemodules+=" ${m}" done # remove leading whitespace characters diff --git a/sci-physics/mbdyn/metadata.xml b/sci-physics/mbdyn/metadata.xml index 8896f30ef8..6556940ae5 100644 --- a/sci-physics/mbdyn/metadata.xml +++ b/sci-physics/mbdyn/metadata.xml @@ -21,72 +21,6 @@ With sci-mathematics/ginac support With sci-libs/jdqz math library Enable MBC - multibody communication library - - - The purpose of this code is the simulation of an asynchronous electrical machine as a part of a multibody model - This element implements a inline joint with friction - ball bearing contact - sci-physics/bullet module - This module implements a user-defined induced velocity element based on CDI's CHARM free wake - This directory contains an example of run-time loadable constitutive law written in Fortran 90 - This directory contains an example of run-time loadable constitutive law written in Fortran 95 - This directory contains an example of run-time loadable constitutive law - continuous contact - controller module - convergence test module - - This module implements induced velocity models for cycloidal rotors - Gandhi, F. and Chopra, I., "An analytical model for a nonlinear elastomeric lag damper and its effect on aeromechanical stability in hover" Journal of the American Helicopter Society, Vol. 39, 1994, pp. 59-69. - GRAALL Damper Constitutive Law - Hydraulic Damper Constitutive Law - It implements a 1D constitutive law based on a generic nonlinear rheological formula, whose coefficients are computed by means of parameter identification from experimental measurements - diff drive module - dot language module - drive test module - example of run-time loadable drive - Dummy module --- does nothing, used to test the infrastructure - converts three Euler angles into the corresponding Euler vector - Library of electric components for "digital fabrication" machines - Library of motion transmission components for "digital fabrication" machines - Library of bearings for "digital fabrication" machines - Library of components of "digital fabrication" machines - flightgear module - eXperimental friction model - eXperimental friction model (2nd try) - Harmonic Excitation Element - This module registers a file driver that captures the input from HID USB devices (only tested with some joysticks) - HuntCrossley constitutive law - This module implements a hydrodynamic plain bearing according to Hans Juergen Butenschoen 1976 Das hydrodynamische zylindrische Gleitlager endlicher Breite unter instationaerer Belastung - module hydrodynamic plain bearing2 - implements two uses of a IMU - This module implements a dummy induced velocity model - This element implements a inline joint with friction - In plane friction - This element implements a journal bearing with lugre friction - leapmotion hand - load increment normalization - marble model for icecube robot - MD module - mds module - minmaxdrive module - multi step drive module - muscle module - namespace module - node dist drive module - Defines a unilateral constraint in form of a contact between a node and one or more planes, optionally with friction - ns1 module - octave module - rand drive module - rollercoaster module - rotor loose coupling - example of run-time loadable scalar function - switch drive module - tcl plugin - This element implements unilateral contact with friction between an arbitrary rigid body, represented by a triangular mesh, and a set of nodes with arbitrary offsets - This module adds a namespace "units" with the only function "convert", which is thus invoked as "units::convert" - This element implements the unilateral contact between a point and a plane - Connects 2 structural nodes: Wheel Ground - L. Gagnon, M. J. Richard, P. Masarati, M. Morandini, and G. Dore. Multibody simulation of tires operating on an uneven road. In Multibody Dynamics 2011, 4-7 July 2011 With sci-libs/metis model partitioning support With MPI support Enable multithread naive solver