Code Monkey home page Code Monkey logo

openfluid's Issues

Mapview as a reusable component

"Refactor mapview as a reusable component, for embed it either in OpenFLUID-Builder main application or in extensions.

The component should be parameterizable for different usages (this list is not exhaustive):

  • data source (datastore or otrher sources) and accpeted data types
  • enabled internal components (toolbar, layers bar)
  • enabled interactions (tools in toolbar, right-click, ...)
  • etc ..."

Refactor logging system

Refactor logging system for:

  • messages
  • profiling, including performance and call sequences

Copyright text

Update copyright text in header of source files and COPYING files

Provide basic builder extensions

Provide basic OpenFLUID-builder extensions with the installation package

  • Spatial domain importer from GIS files
  • Spatial graph viewer using Graphviz
  • Attributes importer from spreadsheets (csv, ...)

Review GEOS lib management

Review GEOS lib management in CMakeLists.txt by adding standard GEOS_FOUND, GEOS_LIBRARIES and GEOS_INCLUDE_DIRS variables. Should be done using the FindGEOS module: https://github.com/mloskot/cmake-modules/blob/master/modules/FindGEOS.cmake
-lgeos in compile build target links should be removed

If not GEOS_FOUND, do not raise a fatal error but disable the build of landr and all dependent source code (parts of core, tests on GeoRasterValue, GeoVectorValue, ...)

openfluid-core should not be dependent on geos, only GDAL. Parts of GeoVectorValue and GeoRasterValue that uses geos should be transferred into the landr lib

GEOS defines must be removed from config.hpp, and should be given as definitions in the compiling options of landr

Variable time step

Introduce a scheduler which plan the executions of simulations functions during the simulation period.
The sim functions are executed following the model order at t0, then return the number of second before their own re-execution, and so on until the end of the simulation period.
If two simulation functions have to be executed on the same time step, they are sorted to follow the original model order

Update simulation window in OpenFLUID-Builder

Update simulation window in OpenFLUID-Builder to take into account variable time step

  • Presimulation
  • Initialize
  • Simulation with progress as a percentage instead of step completion
  • Finalize

Listeners in buddies

Use listeners in buddies for better interactions with the calling application, and possible integration in OpenFLUID-Builder

Physical units (SI) associated to variables and parameters

Objective: associate each variable, parameter, to its physical SI unit.

  • Storing information about the units inside the objects
  • performing runtime check to detect errors
    Source form WEB IEEE Software article, “Dimensional Analysis with C++,” by Robert F. Cmelik and Narain H. Gehani. They described an approach to detecting units errors in computations involving physical units

Improve unit class management

Improve unit class management by creating a class UnitClass, ensuring that input data attributes and variables are strictly the same for all spatial units of the same class see friend qualifier

Review structure of RuntimeEnvironment

Classes: SystemEnvironment <-- OpenFLUIDEnvironment <-- ProjectEnvironment <-- RunEnvironment

SystemEnvironment (tout est statique)

  • Architecture, ...
  • ...

OpenFLUIDEnvironment (tout est statique)

  • UserHomeDir
  • TempDir
  • ...

ProjectEnvironment

  • loadProject, saveProject
  • isProject
  • getInputDir, getOutputDir
  • ...

RunEnvironment

  • setInputDir, setOutputDir
  • set/getExtraSimulatorsPaths, ...ObserversPaths, ...
  • ...

MapView crashes on Win7 (specific dataset)

System: Windows seven 64 bits, OpenFLUID 1.7.2 32 bits
OpenFLUID project : example project of the M2 "eau et ressources" course

When using mapview with this project, openfluid-builder crashes (classical error message displayed by windows).

Provide realistic examples in OpenFLUID bundle

Provide realistic examples/demos in OpenFLUID bundle

  • simulation functions
  • fully functional projects

When using builder for the first time, the examples/demos are copied in the OpenFLUID user directory in order to be used.
A menu item in the Help menu allow the user to force this copy if needed

Add packaging dependencies

-> update cmake dependency version (currently 2.6, must be >= 2.8.9)
-> review Cmake checking of geos library, must also check the C++ version of the library, not only the C version

DEB

  • gnuplot
  • 7zip
  • libgeos++-dev (optional)

Provide an observer for exporting graph as dot file(s)

Transform the void OPENFLUID_ExportUnitsGraphAsDotFile method in the PluggableFunction class to an observer

allow

  • configurable styles (colors, shapes, ...)
  • set when export is done
  • set title

style.SU.fillcolor = blue
style.SU.shape = egg
when.init=1
when.final=0
when.everytime=0

Update generators for variable coupling time

Review inject and interp generators workflow:

    1. precalculate series and save as temporary files
    1. produce variables as injected series

Update generators for variable coupling time:

  • add a time step parameters to interp, fixed and random generators
  • set inject generator to follow datetime from file

Set tests dependencies

Set tests dependencies in CMake config files, avoiding wrong order of tests excecutions

Accessors names

Remove the "get" prefix in accessors names when the accessor returns a reference to a private member

Enhanced exception system

Improve the current exception system with enhanced embedded information with exception. This could be donne through a hierachy of exception classes, giving more precise information
-OFException
-OFModelException
-OFSpatialException
-OFSimulationException
-OFIOExecption
-OFFluidXException
-OFBuddyException

  • ....

Redesign of the plugin manager and the plugins layout

Redesign the plugin manager in order to manage any kind of plugins

  • simulation functions
  • simulation outputs

Redesign the plugins layout to publish at least the following entries - get the plugin type - get the famework version used to build the plugin - get the plugin signature - get the plugin instance

Set up a rich scheduling information

Set up a rich scheduling information returned byfunctions, as an object

  • type (never, attheend, duration)
  • duration (if any)

set durations as unsigned long long

Rename datatypes

"Remove _t suffix in datatypes,
ex: openfluid::core::Duration_t -> openfluid::core::Duration"

CMake modules

Create CMake modules to ease the build of OpenFLUID wares

Create file OpenFLUIDWaresMacros.cmake including the following macros

Propose default compoents based on build of libraries (GUI/no GUI, builder/no builder, landr/no_landr, ...)
Manage the ability to select other components in a second call to module

macros to build and install wares

  • OPENFLUID_BUILD_FUNCTION
  • OPENFLUID_BUILD_OBSERVER
  • OPENFLUID_BUILD_BUILDEREXT

Ressources:

New scheduling modes with dependencies between functions

Introduce new scheduling modes based on dependencies between simulators

return FollowOther("sim.id");
the simulator will be executed on the next time point when the simulator sim.id is executed

return FollowAnyOther();
the simulator will be executed on the next time point when any other simulator is executed

Check descriptors mandatory data

Check descriptors mandatory data that should be parameters of the constructors of the descriptors classes, e.g. event date, function id, datastore item id, ...

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.