Commit 5253665e authored by fhi's avatar fhi
Browse files

Initial wo history

parents
Pipeline #283479 canceled with stages
---
Language: Cpp
AccessModifierOffset: 0
AlignEscapedNewlinesLeft: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortFunctionsOnASingleLine: true
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true
BinPackParameters: true
BreakBeforeBinaryOperators: false
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: true
ColumnLimit: 120
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 1
Cpp11BracedListStyle: true
DerivePointerBinding: true
IndentCaseLabels: true
IndentFunctionDeclarationAfterType: false
IndentWidth: 4
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
PenaltyBreakBeforeFirstCallParameter: 120
PenaltyBreakComment: 100
PenaltyBreakFirstLessLess: 0
PenaltyBreakString: 100
PenaltyExcessCharacter: 1
PenaltyReturnTypeOnItsOwnLine: 20
SortIncludes: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 4
SpacesInAngles: true
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: false
SpacesInParentheses: true
Standard: Cpp03
TabWidth: 4
UseTab: Never
CommentPragmas: '/<'
build/
build*/
!buildtools/
!buildtest/
*.swp
*.gch
*.csv
*.diff
*.mat
!/src/unittests/container/*.mat
!/src/scenariotest/scenarioData/*.mat
/html
/latex
doxygen/latex
doxygen/html
!Patch_Areas_Save.csv
!Patch_Temperatures_Save.csv
!Patch_Vertices_Save.csv
a.out
tags
*CMakeCache.txt
CMakeFiles/
*.mexw*.pdb
*.mexw*
/Debug
/DebugMatlab
/DebugArmadillo
src/version/version.cpp
src/version/version.h
src/exceptions/xmlData.cpp
*.orig
FINAL_RELEASE/
MexRelease/
compile_commands.json
.vscode/
__pycache__/
/scenariotest/standalone_test/*/*.txt
!/scenariotest/standalone_test/*/reference/**
!/scenariotest/standalone_test/*.csv
!/scenariotest/simulink_test/reference/*/*.mat
!/scenarios/*/*.csv
stages:
- build_framework
- build
- test
- docs
linux_compile:
stage: build_framework
artifacts:
paths:
- buildReleaseLinux
- src/exceptions/xmlData.cpp
- src/version/version.cpp
- src/version/version.h
expire_in: 1 week
script:
- ./buildtools/make_release.sh -c -b buildReleaseLinux ./ ; cd buildReleaseLinux ; make -j32 framework unittests
only:
- master
- web
tags:
- linux
windows_compile:
stage: build_framework
artifacts:
paths:
- buildReleaseWindows
expire_in: 1 week
script:
- ./buildtools/make_release.sh -w -c -b buildReleaseWindows ./ ; cd buildReleaseWindows ; make -j32 framework unittests
only:
- master
- web
tags:
- linux
linux_standalones:
stage: build
artifacts:
paths:
- buildReleaseLinux/standalones
script:
- cd buildReleaseLinux ; make -j32 standalones
only:
- master
- web
tags:
- linux
windows_standalones:
stage: build
artifacts:
paths:
- buildReleaseWindows/standalones
script:
- cd buildReleaseWindows ; make -j32 standalones
only:
- master
- web
tags:
- linux
windows_simulink_converter:
stage: build
artifacts:
paths:
- buildReleaseWindows/simulinkConverter
script:
- cd buildReleaseWindows ; make -j32 simulinkConverter
only:
- master
- web
tags:
- linux
unittest_numeric:
stage: test
script:
- cd buildReleaseLinux/unittest; ./unittestNumeric
only:
- master
- web
tags:
- linux
unittest_symbolic:
stage: test
script:
- cd buildReleaseLinux/unittest; ./unittestSymbolic
only:
- master
- web
tags:
- linux
unittest_valgrind:
stage: test
script:
- cd buildReleaseLinux/unittest/; ../../buildtools/valgrind.sh
only:
- master
- web
tags:
- linux
standalone_test:
stage: test
artifacts:
paths:
- scenariotest/standalone_test/output.txt
expire_in: 1 week
script:
- cd scenariotest/standalone_test/; ./runTests.sh ../../buildReleaseLinux/standalones | tee output.txt
only:
- master
- web
tags:
- linux
documentation:
stage: docs
artifacts:
paths:
- buildReleaseLinux/docRelease/html
script:
- cd buildReleaseLinux ; make -j32 docRelease
only:
- master
- web
tags:
- linux
development_documentation:
stage: docs
artifacts:
paths:
- buildReleaseLinux/doc/html
script:
- cd buildReleaseLinux ; make -j32 doc
only:
- master
- web
tags:
- linux
pages:
stage: docs
artifacts:
paths:
- public
script:
- cp -r buildReleaseLinux/docRelease/html public
only:
- master
tags:
- linux
REVIEWBOARD_URL = "http://137.226.253.111:8580/"
REPOSITORY = "iseaframe"
BRANCH = "master"
Version 2.18.0
===========
- Standalone tests are applied to all XML files in the scenarios folder
- New scenariotests for the simulink s-functions
- The XML options MaxStateSize, MaxOutputSize, MaxNumberOfCells and MaxProbeSize have been renamed to MinStateSize, MinOutputSize, MinNumberOfCells and MinProbeSize
Version 2.17.3
===========
- Switch names of the simulink outputs V_Bat and V_Bat_Cell that were interchanged in previous versions
Version 2.17.2
===========
- Simulink s-functions for linux added to the gitlab pipeline
Version 2.17.1
===========
- Updated documentation
- All documentation is available in English
Version 2.17.0
===========
- New aging model based on a halfcell simulation
- Implementation of the anode overhang effect
- Updated version of the xml parser library
- The initial aging state can no longer be set globally for all cells
Version 2.16.1
===========
- Eigen no longer needs to be patched
Version 2.16.0
===========
- Symbolic version of the framework
- Converter to create a simulink model of the simulation
Version 2.15.1
===========
- Documentation for compiling the framework and running a simulation
Version 2.15.0
===========
- Windows version can be compiled using windows 10
Version 2.14.1
===========
- Fixed coupling of thermal and electrical simulation
- Fixed bug where cyclical aging would get wrong time and dod values
- Fixed bug in output during aging simulation
Version 2.14.0
===========
- Added support for power profiles
Version 2.13.2
===========
- Stopped the aging simulation from calling the electrical observer too early, resulting in an initial voltage value of 0 for the second and all subsequent aging steps
- Electrical and thermal stop criterions can be specified in the XML file
- Fixed the reset of the electrical simulation when the thermal stop criterion is reached
Version 2.13.1
===========
- Fixed a bug in the electrical factory that is triggered when the XML file contains aging states, but not for all cells
Version 2.13.0
===========
- The aging simulation does not write an XML file after each aging step
- Simulation output can be suppressed with the -q flag
- Added an XML filter for writing XML files with updated aging state
Version 2.12.0
===========
- Compilation for linux works without warnings
Version 2.11.0
===========
- The aging simulation standalone writes filter output files into their own subdirectories
Version 2.10.1
===========
- Fixed a bug in the matlab and stdout filters if no root two-port is supplied
Version 2.10.0
===========
- Added calculation for total capacity of ECM
Version 2.9.1
===========
- fixed path for internal CXX test
Version 2.9.0
===========
- The verification standalone also checks for an aging simulation
Version 2.8.0
===========
- Created a class for running aging simulations
Version 2.7.0
===========
- Parameters for executable have changed: Only two parameters for the simulation have to be provided, xml and current profile. The simulation time step is provided in the xml via the option-node StepTime
Version 2.6.1
===========
- fix in matlab filter for thermal probes. The buffer was not cleared correctly, causing samples to be continous aggregated.
Version 2.6.0
===========
- Material now also have an emissivity instead of beeing a black body (emissivity = 1)
Version 2.5.0
===========
- A forced cooling via an alpha coefficent can now be used
Version 2.4.1
===========
- The matio wrapper now tries to open the file several times over a period until throwing. The fomer behavior caused trouble, when the network storage was unresponsive.
Version 2.4.0
===========
- Added support for outputting the heatCapacity and surface area
Version 2.3.3
===========
- Changed parameters of the tesla cell/module to the correct value
- Added filter script for paraview
Version 2.3.2
===========
- Fixed a bug the matio wrapper if an empty vector<vector> is supplied
Version 2.3.1
===========
- Fixed a bug in the xmlparser that was introduced in 2.3.0
Version 2.3.0
===========
- Conductivity matrix of the thermal model can be exported for matlab and csv
Version 2.2.0
===========
- Added support for reversible heat
Version 2.1.0
===========
- SVGExport: changed icons for spherical diffusion and rmphn
Version 2.0.5
===========
- Added GetName function to rmphn
Version 2.0.4
===========
- Fixed a bug with MaxSampleSize that was introduced in 1.17. The time vector was not cleared and kept growing
Version 2.0.3
===========
- Fixed unittests
Version 2.0.2
===========
- Fixed a compile bug for windows, where ABSOLUTE is defined as a macro and
thus the correct enum can't be resolved
Version 2.0.1
===========
- Fixed a bug for heat generation of rmph and spherical diffusion
- Added additional developer for ageing simulation
Version 2.0
===========
- Heuristic ageing model added, cyclic and calendaric
- Half-cell simulation are possible with different ocvs and impedances for the anode and cathode
- Multiparticle model for the anode is supported
- WARNING: With this version the XML format changed slighty
Version 1.17.2
===========
- StdoutFilter now provides also the temperature in case the output twoport is a cellelement
Version 1.17.1
===========
- Error for deprecated XMl-parameter InitialThermalState -> InitialTemperature
Version 1.17
===========
- MatlabFilter has a new property "MaxSampleSize", which limits the samples that are saved into a matfile
Version 1.16
===========
- SOC behavior has been changed. It is not limited anymore between 0 and 100% SOC.
- The SOC does not need additional information of the MeasurementPoints
Version 1.15
===========
- Sqlite support for output filter
Version 1.14
===========
- Results from thermal probes are processed in the thermal filter
- Standalone output has been changed to Decimation + Stdoutfilter
Version 1.13
===========
- fixed issue with matlab filter not creating csv-files
- fixed issue with csv filter. The filter did not correctly propagate data to the next filter
- Added terminal voltage, current and thermal power as output values
- deleted block-observer as it was not used
Version 1.12.1
===========
- Fixed missing root port for observer
- Added temperature to electrical matlab filter
Version 1.12
===========
- Added support for physical motivated impedances (Dissertation Witzenhausen, 2017)
- Voltage, current and power can be now referenced as states
- Added plugin for paraview
- Added support for multiobjects. Several Objects can now be used as if they were a single object
- Added an executable for generating dot files
cmake_minimum_required(VERSION 3.2)
project(ISEAFrame)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
cmake_policy(SET CMP0009 NEW)
set(ISEAFrameVERSION_MAJOR 2)
set(ISEAFrameVERSION_MINOR 18)
set(ISEAFramePATCH_LEVEL 0)
set(ISEAFrameNAME "Scenariotest")
set(ARCH_TYPE
"64"
CACHE STRING "")
option(BUILD_SYMBOLIC "Build the symbolic version of the framework" OFF)
option(BUILD_NUMERIC "Build the numeric version of the framework" OFF)
option(BUILD_AGING "Build the classes required for the aging simulation" OFF)
option(USE_DEBUG_GDB "Create everything with debug symbols" OFF)
option(CREATE_RELEASE_DIRS
"Create directories containing all files needed to run the simulation"
OFF)
option(BUILD_FOR_RT "Build a version for the realtime system" OFF)
option(USE_BOOST_THREADS "Use multithreading for the thermal model" OFF)
set(MATIRX_IMPLEMENTATION
Eigen
CACHE STRING "Choose matrix implementation")
if(CMAKE_TOOLCHAIN_FILE)
link_directories(${CMAKE_FIND_ROOT_PATH}/lib)
include_directories(${CMAKE_FIND_ROOT_PATH}/include)
# the compile options need to be seperated by semicolons so that they are
# interpreted as a list
string(REPLACE " " ";" COMPILE_OPTIONS_LIST ${TOOLCHAIN_COMPILE_OPTIONS})
string(REPLACE " " ";" LINK_OPTIONS_LIST ${TOOLCHAIN_LINK_OPTIONS})
add_compile_options(${COMPILE_OPTIONS_LIST})
add_link_options(${LINK_OPTIONS_LIST})
endif()
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
set(WIN_TARGET ON)
else()
set(LINUX_TARGET ON)
endif()
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows)
set(WIN_HOST ON)
else()
set(LINUX_HOST ON)
endif()
if(WIN_HOST)
# set hints for all find_package calls
set(FRAMEWORK_EXTENSION_FOLDER
"C:\\Data\\$ENV{USERNAME}\\FrameworkExtensions"
CACHE PATH "Folder with required libraries")
set(CMAKE_FIND_ROOT_PATH ${FRAMEWORK_EXTENSION_FOLDER})
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(BOOST_ROOT ${FRAMEWORK_EXTENSION_FOLDER}/boost)
include_directories(${FRAMEWORK_EXTENSION_FOLDER}/include)
link_directories(${FRAMEWORK_EXTENSION_FOLDER}/lib)
add_compile_options(/bigobj)
if(${USE_DEBUG_GDB})
add_compile_options(/DEBUG)
endif()
if(USE_SIMULINK)
set(MATLAB_INCLUDE_DIR
"C:/Program Files/matlab/R2018b/extern/include"
CACHE STRING "Path to matlab header files")
set(SIMULINK_INCLUDE_DIR
"C:/Program Files/matlab/R2018b/simulink/include"
CACHE STRING "Path to simulink header files")
set(MATLAB_LINK_DIR
"C:/Program Files/matlab/R2018b/extern/lib/win64/microsoft"
CACHE STRING "Path to matlab library files")
endif(USE_SIMULINK)
else()
if(${USE_DEBUG_GDB})
add_compile_options(-ggdb)
endif()
endif()
if(BUILD_FOR_RT)
set(USE_BOOST_THREADS
OFF
CACHE BOOL "Use multithreading for the thermal model" FORCE)
set(NUMERIC_DEFINITIONS
${NUMERIC_DEFINITIONS}
-D__KERNEL__
-D_DS1006
-DNDEBUG
-D__RTLIB__
-DBOOST_NO_TYPEID
-DBOOST_NO_RTTI
-DBOOST_NO_EXCEPTIONS
-DBOOST_EXCEPTION_DISABLE
-DFALSE=0
-DTRUE=1
-DBOOST_UBLAS_UNSUPPORTED_COMPILER=0
-DBOOST_NO_CXX11_HDR_ARRAY
-DBOOST_NO_CXX11_HDR_TUPLE
-DBOOST_NO_CXX11_RVALUE_REFERENCES
-DBOOST_NO_CXX11_REF_QUALIFIERS
-DBOOST_HAS_NRVO
-DBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-DBOOST_NO_CXX11_AUTO_DECLARATIONS
-DBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-DBOOST_NO_CXX11_CHAR16_T
-DBOOST_NO_CXX11_CHAR32_T
-DBOOST_NO_CXX11_CONSTEXPR
-DBOOST_NO_CXX11_DECLTYPE
-DBOOST_NO_CXX11_DECLTYPE_N3276
-DBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-DBOOST_NO_CXX11_DELETED_FUNCTIONS
-DBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-DBOOST_NO_CXX11_FINAL
-DBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-DBOOST_NO_CXX11_LAMBDAS
-DBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-DBOOST_NO_CXX11_NOEXCEPT
-DBOOST_NO_CXX11_RANGE_BASED_FOR
-DBOOST_NO_CXX11_RAW_LITERALS
-DBOOST_NO_CXX11_REF_QUALIFIERS
-DBOOST_NO_CXX11_RVALUE_REFERENCES
-DBOOST_NO_CXX11_SCOPED_ENUMS
-DBOOST_NO_CXX11_STATIC_ASSERT
-DBOOST_NO_CXX11_TEMPLATE_ALIASES
-DBOOST_NO_CXX11_UNICODE_LITERALS
-DBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-DBOOST_NO_CXX11_USER_DEFINED_LITERALS
-DBOOST_NO_CXX11_VARIADIC_MACROS
-DBOOST_NO_CXX11_VARIADIC_TEMPLATES
-DBOOST_NO_SFINAE_EXPR
-DBOOST_NO_TWO_PHASE_NAME_LOOKUP
-D__NO_STRING__)
else()
set(COMMON_DEFINITIONS ${COMMON_DEFINITIONS} __EXCEPTIONS__)
endif()
if(USE_BOOST_THREADS)
set(NUMERIC_DEFINITIONS ${NUMERIC_DEFINITIONS} -DBOOST_THREAD
-DBOOST_HAS_THREADS)
endif()
set(NUMERIC_DEFINITIONS ${NUMERIC_DEFINITIONS} _EIGEN_)
set(SYMBOLIC_DEFINITIONS ${SYMBOLIC_DEFINITIONS} _SYMBOLIC_)
if(BUILD_AGING)
set(NUMERIC_DEFINITIONS ${NUMERIC_DEFINITIONS} BUILD_AGING_SIMULATION)
endif()
# the following variables are used by cmake files in subdirectories to specify
# which dependencies are needed
set(NEED_SIMULINK OFF)
# the boost headers are always needed, but some components also require
# precompiled binaries
set(NEEDED_BOOST_COMPONENTS "")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS ${USED_BOOST_COMPONENTS})
# find_boost creates targets with Boost:: as a prefix. Add that prefix to each
# required component to get the target names. these targets are only added to
# the standalones because mex files cannot be linked to boost
set(BOOST_TARGETS Boost::boost)
foreach(component ${USED_BOOST_COMPONENTS})
set(BOOST_TARGETS ${BOOST_TARGETS} Boost::${component})
endforeach()
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} Boost::boost)
find_package(MATIO REQUIRED)
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} ${MATIO_LIBRARIES})