Opened 8 years ago

Closed 7 years ago

#4087 closed defect (duplicate)

Bugs avec nombres Complexes

Reported by: belen.goncer-maraver@… Owned by: somebody
Priority: high Milestone: Future
Component: *unknown* Version:
Keywords: Cc:

Description

Deux problèmes ont été rencontrés avec OpenModelica qui concernent des opérations avec des nombres complexes.

Vous trouverez ci-joint les deux modèles OpenModelica permettant de reproduire les erreurs:
1- model <<when_init_complex>> : Apparemment la somme des nombres complexes ne fonctionne pas correctement dans ce cas
2- model <<if_complex_if_expression>> :Un problem semble se reproduire avec le "if expression". En utilisant le "if clause", le modèle fonctionne correctement.


Je vous remercie d'avance pour les éventuels renseignements ou pour les mises à jour d'OpenModelica pour résoudre ces problèmes.

La version utilisée est: OMEdit V1.9.5 connected to OpenModelica v1.9.6

Attachments (1)

Tests_OM_pour_OM.mo (588 bytes) - added by belen.goncer-maraver@… 8 years ago.
Problèmes avec nombre complexes

Download all attachments as: .zip

Change History (3)

Changed 8 years ago by belen.goncer-maraver@…

Problèmes avec nombre complexes

comment:1 Changed 7 years ago by casella

Model when_init_complex now fails with

Tests_OM_pour_OM.when_init_complex.c: In function 'Tests_OM_pour_OM_when_init_complex_eqFunction_4':
Tests_OM_pour_OM.when_init_complex.c:77:5: error: '$PEo' undeclared (first use in this function)
     $PEo = omc_Complex(threadData, 20.0, 0.0);

Could be related to #3276.

Model if_complex_if_expression now fails with

[Tests_OM_pour_OM: 21:5-21:98]: Internal error function createNonlinearResidualEquations failed for equation: 
Complex(E.re - V.re, E.im - V.im) = if model_type then Complex(0.0, 0.0) else Complex(Z.re, Z.im)

[C:/dev/OpenModelica64bit/OMCompiler/Compiler/SimCode/SimCodeUtil.mo: 5939:7-5939:46]: Internal error complex equations currently only supported on form v = functioncall(...). 
Equation: Complex(E.re - V.re, E.im - V.im) = if model_type then Complex(0.0, 0.0) else Complex(Z.re, Z.im) solve for {V.im,V.re}

One possible solution is sketched in #4354

comment:2 Changed 7 years ago by casella

  • Resolution set to duplicate
  • Status changed from new to closed

Duplicate of#4157

Note: See TracTickets for help on using tickets.