Simulation scientifique

Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004 - 1 juil. 2004 à 17:14
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 6 juil. 2004 à 14:22
Bonjour,

j'ai pour projet la réalisation d'un simulateur grace aux JavaBeans orienté calculs scientifiques. >:)
Par exemple, l'utilisateur du siulateur (moi par exemple) pourrait ajouter des Bean représentant :
* un repère orthonormé, représentant la Terre et défini par une vitesse de rotation,
un repère orthonormé fixe représentant le soleil,
* une maison, caractérisée par ses coordonnées, et liée au précédent repère. les coordonnées de la maison sont donc exprimées dans le repre précédent.

Le but étant de connaite la position de la maison par rapport au soleil à chaque instant ( t + Dt ).
mais le prolème vient essentiellement de la simulation du temps.
en effet, je dois intégrer dans mon simulateur un composant (Bean) relatif au temps dont les propriétés configurables sont:
* le temps de début de l'incrémentation t0,
* le temps de fin d'incrémentation tfin,
* l'interval de temps Dt.

Dans l'absolu, il faut que le composant temps fasse :
for (t=t0;t<tfin; t++)
{
do ...
}

mais à chaque pas de temps, il dois faire un certain nombre de calculs et je n'ai pas encore trouvé comment lui signifier de ne pas incrémenter tant que tous les calculs ne sont pas terminés...

je me suis pas mal documenté sur la question, sur les différents types d'architecture, mais je n'ai rien trouvé de probant ...

donc, si quelqu'un à une ou deux idées, des adresses de sites intéressants, ou une remarque constructive je suis preneur :big)

merci ...

8 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
1 juil. 2004 à 19:58
:big) Neodante :big)

Il existe quelques Design Pattern permettant de parer à ton problème ... mais ce serait ici trop long à expliquer (cherche temporal pattern sur google) ... le mieux est que tu fasses une Thread avec un sémaphore et un flag ... c rustique mais au moins ca marche même si c'est plus dégueux que le DP ...
@+

[Responsable www.neogamedev.com]
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
2 juil. 2004 à 09:41
merci de ta réponse :big) Neodante :big)
mais je n'ai pas tout compris...particulièrement le passage sur la Thread (c'est quoi ?) le sémaphore (??) et le flag (???)...
est-ce que tu pourrais un peu m'expliquer de quoi il retourne ?

et j'aurais aimé avoir un avis sur les différentes architectures utilisées pour ce genre de calcul, je pense notamment au projet JSIM, JBDS (JavaBeans Discrete Simulation) ou SImJava... si quelqu'un les a deja utilisé ???? :question)

voila... et encore merci
@+ :clown)

PS.: je m'étonne de voir si peu de sources sur ce genre de problème, c'est vrai, je n'ai pas trouvé de sources d'interpolation linéaire ou complexe, de solveur d'équation différentielle... bizarre...
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
2 juil. 2004 à 13:16
:big) Neodante :big)

Oula ce serais vraiment trop à t'expliquer comme concept .. car ce sont des concepts assez énormes à maitriser ... le mieux est que tu cherches sur Google mais je crois que vu ton problème une solution plus simple serait convenable, utilise simplement un objet que tu partages entre plusieurs de tes autres objets ... ensuite l'objet central ne sert plus que de chef d'orchestre au autre ... c'est simple, classique, pas très ergonomique mais ca marche ... je ne connais pas ton niveau en programmation, algo et architecture donc bon ... pas facile de te trouver une solution ...

Pour les autres architectures ... connais pas !!!

[Responsable www.neogamedev.com]
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
2 juil. 2004 à 16:01
re bonjour 8-)

et bien, en ce qui concerne mon niveau en programation je suis débutant, j'ai codé un peu en C : je faisais des simulateurs de mécaniques spatiales... pas d'interfaces graphiques si ce n'est des menus DOS... et pas mal de mathématiques... résolution de systeme d'équations différentielles... que des trucs sympas !... mais aucune notion d'architecture :sad)

sinon, jai pensé a cette solution... enfin je crois...
je voulais créer un composant "Temps" qui incrémenterait le temps. Je l'aurais relié aux autres composants de premier niveau, eux meme reliés aux composants de second niveau ...etc... et j'aurais relié les derniers composants au composant "Temps" pour lui dire :

"Yo man ! les calculs sont finis, vas-y tu peux incrémenter !"

une espèce de structure arborescente avec retour au composant initial en fin de cycle...

Voila ce que je voulais faire, mais comme tu dis, c'est pas très ergonomique tout ça... surtout quand on arrive à 4 niveaux de dépendances et près d'une vingtaine de composants ... ca devient vite 'bordelique'
:question) finalement... est-ce que je ne me trompe pas en pensant que JavaBeans permettent de faire de telles applications :question)
car je n'ai toujours pas vu, ni entendu parler, de programmes écrits en Java à destination d'applications scioentifiques ou calculatoires ???

est-ce que t'aurais entendu parlé des architecture DEVS, ou HLA ou COSIMA ou encore C2 ?
c'est ce que j'ai trouvé dans la littérature mais c'est assez compliqué (faut dire que j'ai trouvé ça dans des thèses %-6 )

merci @+
:clown)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
2 juil. 2004 à 19:08
:big) Neodante :big)

Les JavaBeans ... je ne vois pas en quoi ceux-ci pourrait t'aider !!! Un javabean est un composant dont tous les membres possèdent des accesseurs et qui peuvent être afficher des controles Visual Basic deans un EDI ...

Pour ce qui est des architectures que tu m'as parlé ... jamais entendu ! Mais je pense qu'il faut que tu ais un composant centrale quitte à le diviser en plusieurs (Design Pattern Facade par ex) ...

@+

[Responsable www.neogamedev.com]
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
5 juil. 2004 à 16:23
wow vous emplyez de ses mots compliqués vous deux ... m'enfin si le problème c'est d'attendre la fin d'un ou de plusieurs série de calculs, c'est pas les beans, c'est les thread, ça c'est sur.

Oobaï TaPou !
0
Bison_Ravi_33 Messages postés 55 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 septembre 2004
6 juil. 2004 à 13:21
Ok Asrull...
va pour les thread...
mais c'est quoi un thread et comment on utilise ca avec des JavaBeans ???
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
6 juil. 2004 à 14:22
:big) Neodante :big)

Wao ... je te conseillerais de faire le tutorial sur les Threads qui se trouve sur java.sun.com de t'acheter un bouquiin parce les gros progs Java sans Thread y en a pas beaucoup ... surtout vu l'appli que tu veux faire .. si tu utilises SWING tu en utilises sans le savoir ... ce sont les taches parallèles pour simplifier ...
Si tu veux un bon bouquin va sur mon site dans ressources et tu devrais trouver un coffret de livres Java ... pour les Threads achète toi que le volume 2 !!!
@+

[Responsable www.neogamedev.com]
0
Rejoignez-nous