Evolution #266
variables locales dans loi des mélanges pilotée par une fonction nD
Description
Gérard,
je voudrais piloter une loi des mélanges avec une fonction nD qui utilise des variables locales (en l'occurrence X1, X2 ou X3).
Dans l'exemple joint, j'ai défini une loi des mélanges MAT_nD qui peut être régie par l'une des trois fonctions nD suivantes :
- fonction_nD_melange_1 => dépend de temps_courant et de la constante utilisateur C__x => ok ça marche
- fonction_nD_melange_2 => dépend de temps_courant et de la variable locale X1 => erreur
- fonction_nD_melange_3 => la combinaison des 2 cas précédents (utilisation de temps_courant, C__x et X1) => erreur
actuellement, Herezh ne supporte pas les variables locales dans les lois des mélanges. Voici un extrait du message d'erreur :
------------
erreur en lecture, la fonction nD fonction_nD_melange_2 utilise 1 variables locales alors qu'elle ne doit utiliser que des variables globales elle n'est donc pas utilisable !!
------------
est-ce possible de pouvoir accéder aux variables locales ?
Fichiers
Mis à jour par Gérard Rio il y a environ 4 ans
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 10
oui, le pilotage d'un mélange est possible via une fonction nD dépendant uniquement de variables globales.
Cela provient du fait que l'implantation des fonctions proportions est externe à la loi des mélanges et les deux classes ne sont pas prévues pour partager des infos.
L'idée était que les variables locales pouvaient déjà s'exprimer dans les courbes multiplicatives 1D.
Mais compte tenu le la flexibilité des fonctions nD, c'est vrai que l'extension aux variables locales serait sans doute pratique. Cela fera double emploi avec les courbes 1D.
Bon... je vais regarder
Mis à jour par Gérard Rio il y a environ 4 ans
- Tracker changé de Anomalie à Evolution
juste une remarque:
le ticket devrait plutôt être dans le domaine (Tracker): Evolution
Mis à jour par Julien Troufflard il y a environ 4 ans
ok. J'ai pas répondu mais j'ai vu.
quelle est la distinction entre le projet herezh++ et herezh++_test ? Il me semble que tu as déplacé ce ticket de herezh++ vers herezh++. Tous les tickets de type "evolution" doivent-ils être ouverts dans herezh++_test ?
Mis à jour par Julien Troufflard il y a environ 4 ans
erratum dans mon avant-dernière phrase. Je voulais écrire cette phrase :
Il me semble que tu as déplacé ce ticket de herezh++ vers herezh++_test.
Mis à jour par Gérard Rio il y a environ 4 ans
- % réalisé changé de 10 à 80
J'ai juste changé le titre du Tracker... je ne sais pas trop pourquoi la case projet a changé, car je ne me souviens plus de l'avoir changé.
Mais effectivement le passage en Herezh++_test est peut-être une bonne idée. Il faudra que je re-regarde la gestion du site...
Bon... ceci étant j'ai fini un premier jet de modifications. De l'extérieur cela parait un peu anodin, mais de l'intérieur en fait cela a changé la structuration avec pas mal de ramification.
Mais c'est cohérent avec une évolution que j'avais faite lors dernièrement de l'implantation de la loi "Hyper_externe_W" donc cela me va bien.
J'ai fait un petit test, cela fonctionne.
Donc dans la nouvelle version 6.970, la fonction nD peut adresser toutes les grandeurs dispo au moment de l'appel.
Le choix entre courbe et fct nD s'effectue par le fait qu'il y a une grandeur globale (sauf le temps) dans la liste des grandeurs disponibles pour la pondération.
Bien noter que le temps n'est pas éligible, car lui il d’éclanche l'utilisation d'une courbe 1D spécifique au temps.
La fonction nD fait double emploi avec tout le reste, mais je laisse le tout pour qu'historiquement cela soit compatible.
La doc en interne d'Herezh est à jour mais la doc papier n'est pas encore à jour.
Peux-tu regarder et voir si cela répond à ta demande ?
Mis à jour par Julien Troufflard il y a environ 4 ans
merci pour toutes ces évolutions.
par contre, la fonction nD que je voulais utiliser requiert le temps. N'y a-t-il pas possibilité de le permettre ?
Il y a deux grandeurs concernant le temps. Dans les fonctions 1D, c'est la variable TEMPS qui est invoquée. Dans les fonctions nD, c'est la variable temps_courant. Cette distinction ne permettrait-elle pas de pouvoir déclencher le choix entre une fonction 1D et une nD ?
Mis à jour par Gérard Rio il y a environ 4 ans
pas de pb pour l'utilisation du temps dans la fonction nD.
Ma remarque concerne uniquement le déclenchement de la définition (et de lecture) d'une fonction nD dans la loi des mélanges.
En fait dans la loi des mélanges, tu peux indiquer n'importe quelle grandeur globale mais pas le temps, pour dire que tu définis une fonction nD.
Ensuite dans la définition elle même de la fonction nD, là tu es libre d'utiliser toutes les grandeurs que tu veux, y compris le temps.
D'ailleurs la grandeur globale utilisée dans la loi des mélanges peut très bien ne pas être présente dans la fonction nD ...
On voit bien, que la fonction nD fait double emploi avec l'existant mais...bon c'est plus générique et facile de manipuler toutes les grandeurs à l'intérieur d'une même fonction.
je te joins ton exemple avec l'utilisation du temps dans la fonction nD
Mis à jour par Julien Troufflard il y a environ 4 ans
merci, ça fonctionne. J'attends la version linux pour tester sur ballon.