- Exp.mo
- add function expLastSubs
- DAELow.mo and VarTransform.mo
- extend arrays if elements of the array has to be replaced
109 lines of code changed in 3 files:
- fixes to make slicing like
a[1,:] := a[:];
and/or
a[2:3,2] := x[2:3];
work:
- fixed code in indexed_assign_real_array(), index_real_array() and index_alloc_real_array()
- fixed daeExpCrefRhsIndexSpec() template to generate "zero" dimension size for scalar subscripts for INDEX case:
(0), make_index_array(1, <%expPart%>), 'S'
- added test ArrayAssignWholeDim.mo; but it should be moved to mosfiles to ensure C-runtime invocation
TODO: the same should be done for integer_array.c; then the character slice coding, i.e. 'S','A','W', can be removed entirely;
or, perhaps, the slicing operation can be generated inline as appropriate nested for loops (I'll do that for C# generator, then it may be ported back to C++)
- fixed daeExpAsub() template for _get_1D() .. _get_4D() constant index cases ... decremented indexes, because the _get_#D() functions works with zero based indexes
- commented out #include "utility.h" in simulation_events.cpp to enable debugging in Visual Studio
- added NO_INTERACTIVE_DEPENDENCY macro switch used in simulation_runtime.cpp for simpler compilation of simulation runtime in Visual Studio
- added SimCode.cref2simvar(ComponentRef,SimCode)->SimVar function and daeLow field into SimCode.SIMCODE record to enable lookup of representation arrays in templates (C#);
note that only cref2simvar() is visible from templates, but not the daeLow field which is not added to SimCodeTV.mo;
the function needs a SimCode value as a whole, so the implementation is effectively hidden from templates' viewpoint;
BUT, this is only a workaround for the lack of the needed information in component references themselves (hope they will have it in the future);
see usage of cref2simvar() in SimCodeCSharp.tpl
- added extern int const specifiers in functionStoreDelayed C++ template to resolve a link problem in VC++
- renamed local identifiers named cref to cr or ecr (ecr when of type DAE.Exp) in the C++ templates to disambiguate them from cref() template name (will be checked in the future; now value binding names and template names has separate name scopes, but that will be changed in the next versions of Susan);
maybe the cref() template should be renamed to compRef() because there exist fields named cref in SimCodeTV.mo
- simplified several constructs like '<%val%>' to just val and/or like (libs |> lib => lib) to just (libs) in C++ templates
- re-factored some case clauses when they shared the same then part (Susan can have "or" cases,e.g.: case PAT1 case PAT2 case PAT3 then tplExpr ... where the same tplExpr is lexically used for every given case)
- renamed subscriptsTpl() and subscriptTpl() templates to more suitable names subscriptsStr() and subscriptStr()
- added many improvements in C# code generator
- changed some make commands for Susan/C# codegen testing
- added testmo make command to Makefile.common
11078 lines of code changed in 16 files:
Added output of results into a MAT-file that Dymola is able to read, so
Dymola's variables' browser can be used.
Specifications of Dymola's output format are described in Dymola User's Guide.
Currently is this outputFormat designated as "mat", but should be changed
(as there is no need to have output to MAT-file only formatted according
to Dymola).
360 lines of code changed in 4 files:
- 08_pam: Disable Input.read due to OpenModelica trying to ceval the external function
11 lines of code changed in 1 file:
- Fixed constant evaluation of for iterators.
- Added test case ForIf.
29 lines of code changed in 3 files:
- Fixed expected output of test case PID_Controller.
2 lines of code changed in 1 file:
- Added testcase ReinitArray from mathcore.
32 lines of code changed in 2 files:
-removed __inline when compiling with visual studio, because it can not cope so well with inline in combination with extern, causing linking error.
1 lines of code changed in 1 file:
- Fixed small mistake in instantation of reinit statements.
1 lines of code changed in 1 file:
-Fixed bug with infinite recursion when trying to constant evaluate parameter that has no binding (must be allowed when e.g. checking models). Testcase in multibody/checkingModels/BodyCylinder.mos
8392 lines of code changed in 5 files:
-Added error message for structurally singular equation (e.g. 0=0). Before we only had message for structurally singular system.
3 lines of code changed in 1 file:
-Added ClassInf.State to the Prefix information so at least the state is part of ET_COMPLEX information in DAE.VAR. Note that list of variables in ET_COMPLEX is still missing (this is a little bit of the chicken and egg problem, since the type can not be properly filled in before the type of the class is known). However, by at least having ClassInf.State in ET_COMPLEX one can distinguish between e.g. connector variables and other variables in the backend. Also note that for expressions in equations and algorithm the ExpType is correctly filled with type information, since those are elaborated first when the components have been instantiated (and their types are known), so the above is only concerning DAE.VAR objects.
33 lines of code changed in 4 files:
- Fixed test case AlgorithmForInClass that was broken by commit 5859 by fixing
the lowering of for statements.
- Fixed bug #1236, constant evaluation of product in nested for iterators.
- Implemented constant evaluation of empty ranges in reductions.
- Extended sum reductions to also handle vectors, matrices and strings.
- Use correct type for the iterator variable.
- Extended the ConstantReductions test case to also test the new
functionality.
181 lines of code changed in 5 files:
- new releases of qt clients OM* and some other small changes
8 lines of code changed in 8 files:
- SimCode.mo
-collate crefs of arrays before template code generation
- DAELow.mo
-add function collateAlgorithm, collateArrExpm, traversingcollateArrExp
- SimCode/SimCodeC.tpl
- improve template algStmtTupleAssign to generate code for functions return arrays
588 lines of code changed in 4 files:
changed #include <Qt/qdom.h> to #include <QtXml/qdom.h>. Caused problem in compilation of OMNotebook
4 lines of code changed in 1 file:
- Exp.mo
- simplify array of array * array with simplifyScalarProduct
28 lines of code changed in 1 file:
- DAELow.mo
- extend arrays in algorithms
- fix bug DAE.STMT_ASSIGN_ARR results in error " Too few equations, underdetermined system. The.."
- SimCode.mo
- check index of array to test singleAlgorithmSection
- ToDo: SimCodeC.tpl array = f(...), (array,array) = f(...)
63 lines of code changed in 2 files:
- Moved valueExp from Static to ValuesUtil.
- Added a new cevalIfConstant function to Ceval, and removed the old one from
Static.
- Removed calls to cevalIfConstant in Static, and added calls to cevalIfConstant
to Inst, Interactive and Mod where appropriate.
- Updated testcases due to changes in constant evaluation.
2244 lines of code changed in 61 files:
- update MultiBody tests
63 lines of code changed in 27 files:
- install the lapack mingw libs in the build/lib/omc directory
1 lines of code changed in 1 file:
- link of Lapack on mingw to the correct libraries.
1 lines of code changed in 1 file:
- external lapack libraries for mingw
0 lines of code changed in 3 files:
- SimCode/SimCodeC.tpl
- use "int" for enumeration type for external functions
7 lines of code changed in 2 files:
- updates to System guides.
0 lines of code changed in 2 files:
- small fix
1 lines of code changed in 1 file:
- Propagate Absyn.Info from every equation and algorithm up to the DAE AST
- One exception: The parser segfauls on Absyn.Algorithm in mosfiles, so dummyInfo is provided for most algorithm sections.
979 lines of code changed in 24 files:
- Builtin.mo
- add function isCross, isMax, isMin, isTranspose, isSkew
- DAEDump.mo
- add in function dumpDebugElement some elements
- DAELow.mo
- if initialarrayequation is lowered add it to initalarrayequations
- uncomment case for DUMMY_STATE in function statesDaelow2 because this is not a state
- add variables with kind STATE to BinTree "states" to avoid removing of states in function removesimpleequations
- if complex equations are lowered and extendet to its elements add array equations to list of array equations
- remove functions extendAllRecordEqns, extendRecordArray, extendRecordEqOpt and extendExp because the are now unused (topic above)
- add cases for matrix expressions to lowerMultidimeqns2
- remove simple equations in function matchingAlgorithm after index reduction because multibody models have a lot of simple equations after index reduction
- Derive.mo
- use Builtin to check if builtin function
- Exp.mo
- add case for functions min and max to function simplifyBuiltinConstantCalls
- to more simplifacation in case of array expressions
- add case for matrix + array of array to function simplifyMatrixBinary because function identity generates array of arrays
- SimCode.mo
- dump also components with bltdump in function translateModel
- improve createSingleArrayEqnCode
612 lines of code changed in 6 files:
- configure searches also for omniidl in the specified place
22 lines of code changed in 2 files:
- configure for mico in custom directory, not on path
17 lines of code changed in 2 files:
- test commit in the new server
7 lines of code changed in 1 file:
- systemimpl CFLAGS for OSX
5 lines of code changed in 1 file:
- Exp.mo
- try to simplify exp in ASUB in simplifyAsub if all other cases not true
5 lines of code changed in 1 file:
- Syntax error
2 lines of code changed in 2 files:
- Add check for -ffloat-store in the configure script. That also solves dassl runtime issues.
14 lines of code changed in 2 files:
- Change -msse to -msse2 as we need to use SSE on doubles, not floats
6 lines of code changed in 2 files:
- Set -msse in configure in case the instruction set does not have it enabled
2 lines of code changed in 2 files:
- Running autoconf
6 lines of code changed in 1 file:
- It's called -mfpmath, not -fpmath....
5 lines of code changed in 1 file:
- Force -fpmath=sse on Linux platforms, as otherwise simulations spin forever (32-bit)
50 lines of code changed in 2 files:
- Fix configure on OSX
14 lines of code changed in 2 files:
- SimCode.mo
- fix bug in derVarFromStateVar to avoid redefinition of macros in generated code
10 lines of code changed in 1 file:
- Updated RollingWheel.mos expected output so the whole testsuite passes
6 lines of code changed in 1 file:
- Updated rtest script to show a unified diff since that is more human-readable
2 lines of code changed in 1 file:
- SimCode.mo
- bugfix code generation for arrays in function createNonlinearResidualEquations
28 lines of code changed in 1 file:
- Added Absyn.Info field to Absyn.{Equation,Algorithm}Item
- Renamed SCode.Algorithm to SCode.AlgorithmSection since that is what it is
- Added new datatype SCode.Statement, which is what an AlgorithmSection contains lists of
- All statements have comment and info fields preserved so they can be used by Inst/Error
814 lines of code changed in 19 files:
- Updated checkSettings() to also post "uname -a" output
- Compiler/runtime/Makefile no longer sets -O3 twice
13 lines of code changed in 2 files:
- Updated c_runtime/Makefile to use the CFLAGS set by the configure script
- OMDev is still always -msse2
- Default Unix is -O3 -march=native, which means it's tuned for your CPU regardless of what kind you are using
- To override, specify any CFLAGS (CFLAGS=-O2 ./configure, ./configure CFLAGS=-O2, etc)
73 lines of code changed in 6 files:
- Update Workplan
0 lines of code changed in 1 file:
Also added Anton Sodja as co-author.
0 lines of code changed in 4 files:
Slight update. Added Rickard Lindberg as co-author. Also mentioned ModelicaMl UML-Modelica modeling.
0 lines of code changed in 4 files:
Final version of System documentation and Users Guide for OpenModelica 1.5.
Updated acknoqledgement and contribution and authors section. Added a few smaller
technical sections. Resolved a problematic section numbering problem in the Users Guide.
Updated the big figure in the Systems doc.
0 lines of code changed in 4 files:
update dassl2 in main_solver
+ change step calculation
+ and some minor changes regards error treatment
50 lines of code changed in 5 files:
- Derive.mo
- add der(der(cref)) to traversingcrefOrDerCrefFinder
- derivative of functions max, min, sqrt, cross, transpose, array*scalar, ...
- derivative of matrix
- DAELow.mo
- add number to dumpArrayEqns
- use Exp.traverse for replaceDummyDerOthersExp
- extend expressions in complex equations
--> now multibody elementary examples PendulumWithSpringDamper simulates
260 lines of code changed in 2 files:
-Fixed copy paste bug introduced in r5807 (in isZero)
1 lines of code changed in 1 file:
update dassl2
- add warm-start functionality when no event occuors
- work faster than dassl
152 lines of code changed in 2 files:
correct two testcases to pass testsuite
- when_sorting.mo
- PartialFn12.mo
3 lines of code changed in 2 files:
- DAELow.mo
- makeMatrix: check if exp is scalar
- use SUB_ARR because Exp.isConst work now for arrays and matrix
- calculateJacobian: make array equations singular with all possible subscripts
- Exp.mo
- isZero implement Matrix
- isConst implement Array and Matrix
- SimCode.mo
- dlowEqToExp: make array equations singular with all possible subscripts
- SimCodeC.tpl
- implement built in function cross
--> now multibody elementary examples DoublePendulum,InitSpringConstant,Pendulum,PointGravityWithPointMasses,World simulates
214 lines of code changed in 5 files:
- Fix configure script so include flags in qmake are set correctly (does not expect -I input as gcc does)
22 lines of code changed in 5 files:
- Added new field to DAE.ElementSource
- A list<Absyn.Info> so we can propagate line numbers for equations/algorithms further
- Absyn.mo does not yet contain this information, so the list is empty for now
- Changed code generation of functions without outputs
- They now have void as return type, and we generate a lot less code when calling them
- Added support for using builtin functions as function pointers
- PartialFn14.mos tests this functionality
- So far only print(<String>) is implemented in the runtime
- SimCode.getCalledFunctionsInFunction was updated slightly to work better with the new DAE structure
- DAEUtil.getNamedFunction now also looks in the FunctionTree structure
1531 lines of code changed in 19 files:
- Adding new tests to API checkSettings()
- In the CWD: try to create a file, then remove it
8 lines of code changed in 1 file:
- DAELow.mo
- bugfix calculateIndexes now all arrays close together
- Derive.mo
- use type if componentref is derived
17 lines of code changed in 2 files:
- DAELow.mo
- extend all records in array equations so remove simple equations will work
- Inline.mo
- case for inlining functions with record constructors as arguments
--> DoublePendulum oscilates now with model Revolute( constant Real e[3] and constant Modelica.Mechanics.MultiBody.Types.Axis n instead of parameter)
127 lines of code changed in 3 files:
- no need to call generateFunctions2 in createFunctions anymore
3 lines of code changed in 1 file:
- Moved elaboration of NONE into elabCref to reduce the failtrace generated by MetaModelica files
11 lines of code changed in 1 file:
- Call instantiateDaeFunction when elaborating a cref that is a function reference
9 lines of code changed in 1 file:
- Spelling error omshell
4 lines of code changed in 1 file:
- DAELow.mo
- extend all unextended array componentref so the rest of the backen would work right
- SimCode.mo
- replace der operator also in multidimequations
now multibody double pendulum model generates compilable code
73 lines of code changed in 2 files:
- matrix.h: Fix off-by-one error
1 lines of code changed in 1 file:
- SimCode makefile update for OSX (cp -u is not valid in BSD Unix)
2 lines of code changed in 1 file:
- update workplan again due to forgot svn update
0 lines of code changed in 1 file:
- DAELow.mo
- function statesAndVarsExp add special Case for unextended arrays
- remove unneeded listreverses from calculateJacobian
- SimCode.mo
- createOdeSystem:
- because listVar orders the elements not like listEquation the pairs of (var is solved in equation) is twisted, simple reverse one list
--> now multibody simple pendulum model oscillate
26 lines of code changed in 2 files:
- make install no longer tries to install qtclients if they were not compiled
9 lines of code changed in 5 files:
update workplan
0 lines of code changed in 1 file:
Added option to collect ZC from smooth.
1 lines of code changed in 1 file:
- bugfix createOdeSystem2 for arrays
2 lines of code changed in 1 file:
The "Boolean asInSimulationCode" parameter of the dumpXMLDAE() API method was changed in "String translationLevel".
Allowed strings are: flat, optimiser, backEnd.
83 lines of code changed in 2 files:
- fix errors from last commit 5765
3 lines of code changed in 1 file:
- replace equality(x = y) with stringEqual/intEq/realEq
- added more comments and updated some of the formatting
- use Exp.crefEqualNoStringCompare in ConnectUtil.setsEqual as we cannot have stringified crefs there.
- proper dimension printing in PrefixUtil.printPrefixStr
- removed some debug prints from SCodeUtil.mo to make it faster
1592 lines of code changed in 23 files:
- minor formatting changes for improved readability
57 lines of code changed in 1 file:
- proper error messages including the correct package name.
19 lines of code changed in 8 files:
- faster Util.listSetDifference* functions.
Empty - B = Empty.
2 lines of code changed in 1 file:
- Modelica.Mechanics.MultiBody.Examples.Elementary.Pendulum now simulates
- fixes to handle code generation for world.gravityAcceleration function
- code generation for functions now take the functions from the DAE.FunctionTree
instead of re-instantiate them
- some problems appeared with partial functions (i fixed some of them but more debugging is needed to fix all)
SimCode.mo
- SimCode.createFunctions now uses the functions already present in DAE.FunctionTree
- some more comments
- small fixes (functions can contain multiple definitions if they have a derivative annotations)
SimCodeC.tpl
- handle enumeration comparison and types
- replace "." in identifiers with "_" in underscorePath
DAELow.mo
- use basic type equality functions instead of polymorphic one
DAEUtil.mo
- added DAEUtil.getFunctionNames to return the paths of all functions in the DAE
- use basic type equality functions instead of polymorphic one
DAEDump.mo
- DAEDump.unparseDimensions is now public
1017 lines of code changed in 6 files: