Code Monkey home page Code Monkey logo

fedem-gui's Introduction

REUSE status

FEDEM GUI

Fedem Logo

Welcome to FEDEM! - Finite Element Dynamics of Elastic Mechanisms.

About this project

This project contains the complete source code of the Graphical User Interface of FEDEM. It also uses elements from the fedem-mdb project, which is consumed as a submodule by this repository. See src/README.md for details on the source code organization.

The FEDEM solvers themselves are maintained in a parallel project fedem-solvers.

Refer to our web page openfedem.org for overall information on the FEDEM project.

Requirements and Setup

The FEDEM GUI project relies on the following third-party modules, which are not included in this repository:

  • Qt 4.8 - Cross-platform graphical user interface framework
  • Coin 4.0 - OpenGL-based 3D graphics library
  • SoQt 1.6 - Coupling module between Coin and Qt
  • SmallChange 1.0 - Some Open Inventor extensions for Coin
  • Simage 1.8 - Library for saving images and animations from the Coin view
  • zlib 1.2 - File compression library

You need to build and install these modules separately, before building the FEDEM GUI application itself, see here for details. The first four of the packages above are mandatory, whereas the latter two are optional. This means the build will work without them, but with some features being absent.

In addition, we also use the library Qwt 6.1.2 for doing the 2D curve plotting. However, the sources for that library is embedded in this repository, in the src/Qwt folder.

Provided you have installed the third-party modules listed above, you can configure and build the FEDEM GUI from the sources by following the instructions given here.

Activation of features compile-time

Many of the features in the FEDEM GUI can be activated/deactivated compile-time using command-line options on the form -DUSE_(feature)=ON/OFF when running cmake, where =ON activates a feature which is off by default, and =OFF deactivates a feature which is on by default. Currently, the following options can be specified to toggle features On or Off:

  • USE_CHSHAPE - Build with mooring line calculation support
  • USE_COMAPI - Build with the COM API
  • USE_CONTROL - Build with control system support
  • USE_DIGTWIN - Build with some Digitial Twin features
  • USE_FATIGUE - Build with durability calculation support
  • USE_FREQDOMAIN - Build with frequency-domain support
  • USE_MESHING - Build with FE meshing support
  • USE_OILWELL - Build with oil well modeling support
  • USE_RISER - Build with marine structures modeling support
  • USE_SEVENTS - Build with simulation event support
  • USE_SOLVERS - Build with solver support
  • USE_TIREAPI - Build with the Tire model API
  • USE_VTF - Build with VTF export support
  • USE_WINDPOW - Build with Wind turbine modeling support

Installation

You can install a pre-compiled release of FEDEM for the Windows platform (64-bit only) by downloading any of the zip-files FedemInstaller-*.zip from the Releases page. Unzip this file in an arbitrary location, and execute the file INSTALL.bat as administrator to install the software on your PC. See also Install/README.txt.

Unless you already have Microsoft Visual Studio installed (2015 or later), you also need to download and install some C++ runtime libraries from Microsoft before you can run the installed FEDEM GUI or solvers on Windows. Simply download the file vc_redist.x64.exe and execute it as administrator.

Contributing

This project is open to feature requests, suggestions, bug reports, etc., via GitHub issues. Contributions and feedback are encouraged and always welcome. For more information about how to contribute, see our Contribution Guidelines.

Security / Disclosure

If you find any bug that may be a security problem, please follow our instructions at in our security policy on how to report it. Please do not create GitHub issues for security-related doubts or problems.

Code of Conduct

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.

Licensing

Copyright 2023 SAP SE or an SAP affiliate company and fedem-gui contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.

fedem-gui's People

Contributors

kmoks avatar kmokstad avatar ospo-bot[bot] avatar sap-ospo-bot avatar

Watchers

 avatar  avatar

fedem-gui's Issues

Automatically perform strain gage recovery during solve if strain gage results are used as function arguments

As of now the user has to manually toggle on the "Perform strain rosette recovery during dynamics simulation" for the FE part owing that strain rosette. This is easily forgotten, and instead we get an mis-leading error message from solver that the strain rosette does not exist. This is fine if the strain rosette results are only used for plotting, but if they are also used as function arguments, the recovery must be enabled for the model to be consistent.

How to Set environment variable CMAKE_MODULES?

Hi,

I am trying to build the gui under win 10 with vs 2022 and got the error when run cmake:

-- Generating build project for D:/FEDEM/fedem-gui-main -- ERROR : Missing path to FedemConfig.cmake CMake Error at CMakeLists.txt:45 (message): Set environment variable CMAKE_MODULES and try again

I can't find file FedemConfig.cmake.
how to set this and to what value?

Cheers

John

Qt5

Related to #17

Ok, it seems the whole problem on my system is Qt4. Would you be interested on upgrading to Qt5?

Crash when creating a Generic DB Object

If you select the "Generic DB Object" item in the Mechanism menu, the GUI crashes without any messages.
The same happens in the earlier versions R7.6.3 and R7.6.2 also, but not in the versions prior to that.

Missing dependency

FFaOperation shall be added as dependency at https://github.com/SAP/fedem-gui/blob/main/src/vpmApp/vpmAppUAMap/CMakeLists.txt#L89 (I added it at the end of the list).

Otherwise a bunch of undefined referenced will be thrown:

/usr/bin/ld: vpmApp/vpmAppUAMap/libvpmAppUAMap.a(FapUARDBSelector.C.o): in function `FapUARDBSelector::onResultApplied()':
FapUARDBSelector.C:(.text+0x28c0): undefined reference to `FFaOpUtils::findOpers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: FapUARDBSelector.C:(.text+0x2c70): undefined reference to `FFaOpUtils::getDefaultOper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: vpmApp/vpmAppUAMap/libvpmAppUAMap.a(FapUACurveAxisDefinition.C.o): in function `FapUACurveAxisDefinition::setAxisData(FFaResultDescription const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
FapUACurveAxisDefinition.C:(.text+0x71c): undefined reference to `FFaOpUtils::findOpers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: vpmApp/vpmAppUAMap/libvpmAppUAMap.a(FapUAAnimationDefine.C.o): in function `FapUAAnimationDefine::getDBValues(FFuaUIValues*)':
FapUAAnimationDefine.C:(.text+0x4f9e): undefined reference to `FFaOpUtils::findOpers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: FapUAAnimationDefine.C:(.text+0x5e3c): undefined reference to `FFaOpUtils::findOpers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: FapUAAnimationDefine.C:(.text+0x6cfc): undefined reference to `FFaOpUtils::getDefaultOper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: vpmApp/vpmAppUAMap/libvpmAppUAMap.a(FapUAResultListView.C.o): in function `FapUAResultListView::dropItems(int, bool, void*)':
FapUAResultListView.C:(.text+0x55f7): undefined reference to `FFaOpUtils::getDefaultOper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: fedem-foundation/FFpLib/FFpCurveData/libFFpCurveData.a(FFpCurve.C.o): in function `FFpCurve::findVarRefsAndOpers(FFrExtractor*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
FFpCurve.C:(.text+0x1f60): undefined reference to `FFaOpUtils::findOpers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: vpmApp/vpmAppDisplay/libvpmAppDisplay.a(FapAnimationCreator.C.o): in function `FapAnimationCreator::initFringeReading(FmPart*, FFrExtractor*, FmAnimation*, std::vector<int, std::allocator<int> > const*)':
FapAnimationCreator.C:(.text+0x1b26): undefined reference to `FFaOpUtils::findOpers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
collect2: error: ld returned 1 exit status

Regression introduced at 4687d6561164acef7cbd0cf170b040f9d101c48b

#include "FFlLib/FFlElementBase.H" cannot be removed or else

/home/pepe/CoreMarine/exmar/fedem/fedem-gui/src/vpmApp/vpmAppUAMap/FapUARDBSelector.C:194:52: error: no matching function for call to ‘find(std::vector<std::__cxx11::basic_string<char> >::iterator, std::vector<std::__cxx11::basic_string<char> >::iterator, const std::string&)’
  194 |   std::vector<std::string>::iterator it = std::find(allOpers.begin(), allOpers.end(),
      |                                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  195 |                                                     myCurve->getResultOper(myAxis));
      |                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13.2.1/bits/locale_facets.h:48,
                 from /usr/include/c++/13.2.1/bits/basic_ios.h:37,
                 from /usr/include/c++/13.2.1/ios:46,
                 from /usr/include/c++/13.2.1/istream:40,
                 from /usr/include/c++/13.2.1/sstream:40,
                 from /home/pepe/CoreMarine/exmar/fedem/fedem-gui/fedem-mdb/fedem-foundation/src/FFaLib/FFaContainers/FFaField.H:12,
                 from /home/pepe/CoreMarine/exmar/fedem/fedem-gui/fedem-mdb/vpmDB/FmBase.H:21,
                 from /home/pepe/CoreMarine/exmar/fedem/fedem-gui/fedem-mdb/vpmDB/FmModelMemberBase.H:14,
                 from /home/pepe/CoreMarine/exmar/fedem/fedem-gui/fedem-mdb/vpmDB/FmSubAssembly.H:11,
                 from /home/pepe/CoreMarine/exmar/fedem/fedem-gui/src/vpmApp/vpmAppUAMap/FapUARDBSelector.C:17:
/usr/include/c++/13.2.1/bits/streambuf_iterator.h:435:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
  435 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
/usr/include/c++/13.2.1/bits/streambuf_iterator.h:435:5: note:   template argument deduction/substitution failed:
/home/pepe/CoreMarine/exmar/fedem/fedem-gui/src/vpmApp/vpmAppUAMap/FapUARDBSelector.C:194:52: note:   ‘__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
  194 |   std::vector<std::string>::iterator it = std::find(allOpers.begin(), allOpers.end(),
      |                                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  195 |                                                     myCurve->getResultOper(myAxis));
      |                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/vpmApp/vpmAppUAMap/CMakeFiles/vpmAppUAMap.dir/build.make:440: src/vpmApp/vpmAppUAMap/CMakeFiles/vpmAppUAMap.dir/FapUARDBSelector.C.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2310: src/vpmApp/vpmAppUAMap/CMakeFiles/vpmAppUAMap.dir/all] Error 2

Incorrect default location for model open and save as

When selecting File -> Open... or File Save As... the default location of the file browser that appears is the location of the executable (unless you start Fedem from a console window and cd to the executable location in there first). It should have been the home location of the user profile.

Curve plotting still does not work

After fixing #1 it was revealed that all curves only plot the first point in the graph. Therefore the graph views appear empty. However you can see the first point of the curve if you chose a Symbol in the Appearance tab.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.