WO2005081141A2 - Dispositif de simulation du monde réel par traitement asynchrone et chaotique - Google Patents

Dispositif de simulation du monde réel par traitement asynchrone et chaotique Download PDF

Info

Publication number
WO2005081141A2
WO2005081141A2 PCT/FR2005/000124 FR2005000124W WO2005081141A2 WO 2005081141 A2 WO2005081141 A2 WO 2005081141A2 FR 2005000124 W FR2005000124 W FR 2005000124W WO 2005081141 A2 WO2005081141 A2 WO 2005081141A2
Authority
WO
WIPO (PCT)
Prior art keywords
objects
state
interaction
simulation
sequence
Prior art date
Application number
PCT/FR2005/000124
Other languages
English (en)
Other versions
WO2005081141A3 (fr
Inventor
Jacques Tisseau
Fabrice Harrouet
Pascal Redou
Sébastien KERDELO
Christian Charles
Original Assignee
Cervval
Ecole Natonale D'ingenieurs De Brest
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cervval, Ecole Natonale D'ingenieurs De Brest filed Critical Cervval
Priority to CA002552821A priority Critical patent/CA2552821A1/fr
Priority to JP2006550233A priority patent/JP2007524162A/ja
Priority to US10/586,610 priority patent/US20070156381A1/en
Priority to EP05717454A priority patent/EP1706834A2/fr
Publication of WO2005081141A2 publication Critical patent/WO2005081141A2/fr
Publication of WO2005081141A3 publication Critical patent/WO2005081141A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/10Analysis or design of chemical reactions, syntheses or processes

Definitions

  • the invention relates to computer simulation of the real world, and in particular of the temporal evolution of mediums subject to physical and / or chemical and / or biological phenomena.
  • simulation devices are generally based on a modeling of physical and / or chemical and / or biological phenomena in the form of differential equations.
  • the computer simulation must rely on iterative methods, which pass from a current state of the system considered to a next state of this same system.
  • Each system is generally broken down into subsystems or meshes whose respective evolutions are calculated in parallel, in a synchronous manner. Consequently, the state of the system at time T + l results from the parallel application of the phenomena selected to the state of each cell at time T, without being concerned with the consequences that this can induce between cells.
  • this simulation technique does not favor modifications tions of the simulation parameters during work, nor the combination of models of different natures, which affects its generality of application.
  • the invention therefore aims to improve the situation.
  • This device is characterized by the fact that it includes software for simulating by objects the joint evolution of at least some of the activated objects, comprising:
  • interaction objects each containing the designation of at least one of the state objects and of at least one function applicable to at least one of these state objects, and defining the topology at all times of the simulated system
  • a simulation manager capable of working in sequences on a selection of interaction objects, and of activating each interaction object only once during each sequence, in an order varying at least partially randomly from one sequence to another, so as to apply each of its functions to the current state of each state object it designates to change its state to a new current state.
  • the device according to the invention operates in an asynchronous mode, since the respective states of the activated objects vary one after the other within each sequence, taking account of the respective states of the other activated objects, and chaotic, because the processing order of each activated object varies randomly from one sequence to another. It is possible to activate or delete at any time (i.e. in real time) one or more objects, in order to modify the working conditions and / or the simulated system without having to start the simulation all over again , which gives the device a real interactive character.
  • the simulation software can also include internal interaction objects containing the designation of a single state object and of at least one function applicable to this state object, and mutual interaction objects containing the designation of at least two state objects and at least one function applicable to property data of these designated state objects.
  • At least some of the state objects can comprise a property datum which represents an intensive quantity
  • / or at least some of the interaction objects can comprise a function involving an extensive or intensive quantity
  • the simulation software can include object classes that define structures of state objects and interaction objects. The state and interaction objects are then derived from these classes by instantiation.
  • the simulation software can include a scheduler capable of operating either in a real-time mode .; in which it operates according to a chosen frequency, that is to say in a virtual time mode, in which it operates periodically but for variable durations from one period to another.
  • FIG. 1 very schematically illustrates, in the form of functional blocks, a computer equipped with an exemplary embodiment of a simulation device according to the invention
  • FIG. 2 is a flowchart detailing an example of operation of a device according to the invention.
  • the invention relates to a real-world, interactive simulation device.
  • a simulation device according to the invention D can be installed in a computer C comprising an operating system OS and processing and calculation means CPU suitable for operation in a multitasking mode, such as that offered by the oRis environment, described in particular in the document "Multi-agent systems", pages 499 to 524, RSTI - TSI, 21/2002.
  • a multi-tasking environment is particularly well suited to programming by activated objects, for example in C ++ or Java language.
  • the oRis multitasking environment is coupled, like the device D which is illustrated, to a compiler (here called "object programming compiler”).
  • the oRis environment can be coupled, like the device D which is illustrated, with a translator in C ++ language (here called "object programming interpreter") in order to improve its efficiency by compilation.
  • This interpreter can even be adapted so as to constitute an online compiler in which the code executed is a code compiled online and modifiable dynamically.
  • Such a multi-tasking environment, constituting an evolution of oRis, is known by the name ARéVi.
  • the device D includes software for simulating the joint evolution of activated objects (here called "general simulator”). More precisely, this simulation software (or general simulator) comprises objects which can be broken down into two groups.
  • a first group (called “group of state objects”) comprises so-called “state objects” each containing one or more data of space (X, Y, Z) and / or of time (T) and / or one or more property data (or parameters, or even attributes), which together define a current state for the concerned state object.
  • the interaction object may not designate the state object, the latter then being implicitly designated.
  • the space-time datum of a state object can be reduced to only time.
  • At least some of the state objects include a property data which represents an intensive quantity.
  • an object and state may be a non-localized volume
  • a property datum may be a concentration of a chemical substance
  • a state object may be a volume mesh located in space
  • a space datum may be the geometric location in a chosen frame of reference
  • a property datum perhaps a chemical concentration or the temperature inside a mesh
  • a second group (called “interaction object group”) includes so-called objects
  • interaction each containing the designation of at least one of the state objects and of at least one function applicable to at least one of these designated state objects.
  • a function can thus designate a method, or a process, or even a behavior to be implemented.
  • At least some of the interaction objects include property data which represents an intensive or extensive quantity.
  • an interaction object may be a chemical reaction which manipulates the property data "concentration (s)" of the state object "volume”, and the chemical reaction may be characterized by a "reaction rate” parameter which may depend on the "concentration (s)” property data.
  • an interaction object may be a "thermal diffuser" which balances the temperature property data between two adjacent meshes, and the thermal diffuser can be characterized by the parameter "thermal conductivity”.
  • Each interaction object (or activity) is therefore associated with at least one state object by a function, and a state object can be associated with several interaction objects (or activities).
  • a function only modifies the parameters of the state object or objects with which it is associated, without modifying the parameters of the other state objects and interaction objects.
  • the characteristics of the state objects can make it possible to choose the function associated with the interaction objects or to modify their characteristics.
  • a function can be changed temporarily or permanently depending on the parameters of an associated status object.
  • an interaction object can constitute a defined interface, generally with an orientation, between two so-called “source” and “target” media (possibly confused) constituting state objects.
  • the interface then makes the link between the two environments, which are in connection at a given time (notion of strong synchronicity), and modifies their respective parameters (for example, the interface can be a difference in density between two environments which causes molecular diffusion at a certain rate).
  • any type of interface can be envisaged, and in particular transport interfaces (for example of molecules, heat, current, and the like), and relaxation interfaces (for example of chemical or nuclear reactions). Consequently, a medium may not have a spatial extension, this being induced, like the possible speeds, by one or more interfaces. Furthermore, an activity applied to a medium can modify the medium, such as relaxation phenomena, which corresponds to an internal self-activation.
  • the simulation software also includes a simulation manager coupled to groups of state objects and interaction objects and arranged so as to create its own sequencer or scheduler (or in English "scheduler ' " ) in order to work sequentially on a selection of interaction objects from said group of interaction objects. More specifically, the simulation manager is responsible for activating only once during each sequence, under the control of the sequencer (or scheduler) that it creates for on occasion, each interaction object selected, in an order which varies at least partially randomly from one sequence to another, in order to apply each of its functions to the current state of each state object which it designates so as to make its state evolve towards a new current state.
  • the user first of all chooses, in a step 10, from the first and second groups of objects, one or several state objects and one or more interaction objects which relate to this or these chosen state objects, so that the device D simulates the spatio-temporal evolution of the system represented by said chosen objects. This "pre-activates" each interaction object chosen within the simulation software.
  • the simulation manager initializes a sequence counter by placing the value n of the counter at 1, and creates a list of state objects and interaction objects.
  • Activation and application (or execution) of each function to each selected status object constitute step 40.
  • the simulation manager deletes from the list of interaction objects of the sequence in progress the interaction object that it has just applied.
  • the simulation manager performs a test intended to determine if there remain other interaction objects to apply in the list of interaction objects of the current sequence.
  • the simulation manager returns to step 30 in order to randomly select a remaining interaction object. As indicated above, it then activates this new selected interaction object and applies each of its functions to the current state of each state object, possibly modified by activating the previous interaction object (which can no longer be used in the current sequence).
  • the simulation manager reproduces these operations (selection-activation, application and update (s)) as many times as there are interaction objects selected in its list of interaction objects, so that each function of each interaction object is applied only once to each activated state object with which it is associated.
  • the simulation manager increments by a unit, in a step 70, the current value n of the sequence counter.
  • this step 70 includes a test on the number of sequences to be performed. If the number of sequences performed is equal to the maximum number provided, the simulation manager ends the simulation. On the other hand, if at least one sequence remains to be performed, the simulation manager returns to step 20 to perform a new sequence corresponding to an instant T + l, T + 2, ..., T + n. It then repeats the above operations for each new sequence.
  • the duration of the simulation depends on the application concerned, or on the configuration chosen by the user taking into account the application.
  • the simulation can be interrupted at any time by the user using a stop instruction transmitted to the simulation software via a man / machine interface of the computer C. It is important to note that a simulation interrupted at the request of a user can be resumed later.
  • the user can at any time intervene in a simulation, either in the form of an "avatar" to interact himself with the object of the simulation, for example the medium, either to add to, or remove from, its selection one or more state objects and / or one or more interaction objects.
  • the user can also decide to modify at least partially the definition (or structure) of one or more state or interaction objects.
  • a first example concerns the simulation of chemical kinetics within a chemical reactor.
  • the chemical reactor constitutes a state object representing a medium comprising chemical substances, and within which N chemical reactions can occur constituting as many interaction objects.
  • the chemical reactor state object is for example associated with property data representing the concentrations (C1 (T), C2 (T), ..., Cn (T)) at time T of the n chemical substances present initially in the reactor. These concentrations here define the state (at time T) of the chemical reactor state object, whose temporal evolution we want to simulate.
  • each chemical reaction interaction object is for example associated with a function representing the behavior of the reaction: first, we read the concentrations (C1 (T), C2 (T), ..., Cn (T )) in the course of the reactants present at time T in the chemical reactor, in a second step the reaction rate V which is dependent on the concentrations of the reactants present in the chemical reactor is calculated, and in a third step the concentrations of the reagents and products after a time dT at reaction speed V.
  • each interaction object acts only on a single state object, so that it constitutes an internal interaction object.
  • the user will therefore choose his state object (i.e. the initial composition of his chemical reactor) and his N interaction objects (i.e. the N reactions chemicals that are involved due to the chosen composition).
  • the simulation manager can then start its sequential processing.
  • This interaction object begins a first sequence by randomly selecting one of the N interaction objects chosen.
  • the manager updates the concentrations (C1 (T), C2 (T), ..., Cn (T)) of the reagents.
  • it randomly selects one of the N-1 remaining interaction objects in order to activate it and to apply its function to the new current state of the single state object. It reproduces these operations N times so that each function of each interaction object is applied only once to the state object.
  • the first sequence is then finished.
  • the manager then begins a new sequence, corresponding to time T + 1, if necessary, by repeating the above operations.
  • the simulation ends when there are no more reagents to produce products, or when the user sends a stop instruction to the simulation software.
  • a second example concerns the simulation of the molecular diffusion of M diffusers within a space divided into K meshes.
  • Each of the K meshes constitutes a state object characterized, for example, by position data (or topographic or geographic location in a 3D coordinate system) and by property data representing the concentrations (C1 (T), C2 (T) , ..., Cn (T)) at time T of n chemicals (SI, S2, ..., Sn) present in the mesh. These concentrations define here the state (at time T) of the mesh.
  • each diffuser is for example associated with a function representing its behavior: in a first step we read the concentration Ci (T) of the substance Si to be diffused in each of the two meshes, in a second step one calculates the quantities to diffuse (for example by using the generalized law of Fick), and in a third time one modifies the concentration of the diffuser Si in each of the two meshes after a time dT at the speed of diffusion V.
  • the data of property here represent the attributes (or parameters) of the function (behavior of the diffuser).
  • each interaction object acts on two state objects, so that it constitutes an object of mutual interaction.
  • each interaction object here has a conventional structure (or definition) based on at least one function designating at least one state object, as well as possibly parameters or rule (s), or even law (s) , linked to the function and constituting property data.
  • their structure can be more complex, for example when it includes one or more interaction sub-objects.
  • the meshes are here of the three-dimensional (3D) type, but in certain applications they can be of the two-dimensional (2D), or even one-dimensional (1D) type.
  • the user will therefore choose his K state objects (that is to say the K diffusion meshes) and his M interaction objects (that is to say the M diffusers) .
  • the simulation manager can then start its sequential processing.
  • the manager updates the concentrations (C1 (T), C2 (T), ..., Cn (T)) of the substances (SI, S2, ..., Sn) in each of the K meshes.
  • the manager then begins a new sequence, corresponding to time T + 1, if necessary, by repeating the above operations.
  • the simulation ends when the concentrations (C1 (T), C2 (T), ..., Cn (T)) of the chemical substances (SI, S2, ..., Sn) are respectively identical in each of the K meshes, or when the user sends a stop instruction to the simulation software.
  • the two preceding examples can be combined so as to simulate the evolution of chemical kinetics and molecular diffusion within the same vein.
  • each chemical reactor is for example associated with position data (or geographic location in a 3D coordinate system) and with property data representing the concentrations (C1 (T), C2 (T), ..., Cn (T)) to the instant T of n chemical substances (SI, S2, ..., Sn) present in the mesh.
  • concentrations define here the state (at time T) of the mesh.
  • N + M are chosen interaction objects constituting N chemical reactions and M diffusers.
  • Each chemical reaction is also, for example, associated with a function representing the behavior of the reaction: firstly we read the concentrations (C1 (T), C2 (T), ..., Cn (T)) in progress of the reactants present at the instant T in the chemical reactor, in a second stage the reaction rate V which depends on the concentrations of the reactants present in the chemical reactor is calculated, and in a third stage the concentrations of the reactants and of the products are modified after a time dT at the reaction speed V.
  • Each diffuser is also, for example, associated with a function representing its behavior: firstly we read the concentration Ci (T) of the substance Si to be diffused in each of the two meshes, secondly we calculate the quantities to be diffused (for example by using the generalized law of Fick), and in a third time one modifies the concentration of the diffuser Si in each of the two meshes after a time dT at the speed of diffusion V.
  • the property data represent the attributes (or parameters) of the function (behavior of the diffuser).
  • each sequence includes N + M random draws making it possible to successively apply the functions of the N + M interaction objects to the K chemical reactors.
  • the invention can be applied to much more complex applications than those presented above by way of illustrative example. It also applies to simpler applications in which the software only intervenes on a single activated status object, using a single internal interaction object.
  • at least one of the state objects can have a complex structure (or definition) based on one or more state sub-objects (having the conventional structure of a state object), possibly associated with one or more interaction sub-objects (presenting the classic structure of an interaction object).
  • Annex XI begins, at A, with "# incîude” declarations which it is unnecessary to detail since they are well known to those skilled in the art. Then, in B, is declared an interface class, associated with the middle class treated in detail in C. After the header of class Cl, the middle class includes the declaration of specific methods C20 to C30, then in C4 a function (or method) "activate", and finally protected variables set out in C5. In annex XI, the method declarations (or functions) are simplified from the type / parameter definitions, since the skilled person will find these in the detailed statement of each method.
  • variable "_it" which is of type ArRef (class specific to the ARéVi environment).
  • Vrml 3D form
  • the Vrml code allows you to do 3D visualization online. This form is defined by a character string in accordance with the Vrml syntax described for example at http://www.vrml.org. This shape is then visualized and colored. Section C 13 associates with the medium an activity intended to trigger the activate method of section Cl 4.
  • Item C14 is a destroyer of the medium state object.
  • the activate method to be applied to the medium is defined in C4. It makes it possible to link an indication of color to the indication of density, and more precisely to change the color by random drawing. In other words, we modify the red, green, blue attributes of the medium each time activate is applied (or activated).
  • Item B12 is a destructor of the interface interaction object.
  • the activate method of the interface is defined in B4. It is a question of calculating a dif usivity according to a density of source medium and a density of target medium, in order to propagate the difference between the two densities, if at least this difference is significant.
  • the difference noted “delta” is calculated as the application of a diffusivity function to the density of source medium rhos, reduced by the density of target medium rhot. To do this, we first ask the source medium and the target medium what their respective densities are. Then, we calculate the absolute value of the color differences. If this absolute value is greater than a chosen value (here equal to 0.01), the lowest density is increased and the highest density is decreased. Then, the values are updated at a chosen speed.
  • the items B60-B63 allow you to define the type of 3D viewing windows that will be used by the application.
  • section S10 initializes a scheduler in virtual time, that is to say that its operation is not required to respect real time, but each of its iterations logically represents, not physically, a duration one millisecond (1 ms).
  • the scheduler can also operate in real time. In this case, each of its iterations physically lasts a chosen period.
  • the section S20 allows to initialize the dimensions of the medium thanks to the arguments of the command line.
  • the section S21 makes it possible to create and initialize the environments.
  • Section S22 is used to create and initialize the interfaces.
  • the items S31 and S32 provide an auxiliary display, which is done here by the special communication channel with the screen called "error flow”.
  • Item S41 displays the scene to be processed, under selected perspective conditions.
  • item S50 is the main main program which initializes the operation of the system. More specifically, this program first creates a 3D system, then it calls it to activate the method given in section S10 so that it creates the scheduler (or sequencer), the media and the interface.
  • the transition between the representation of appendix X2 and the detailed code of appendix XI is considered to be accessible to the skilled person, as soon as an example has been given.
  • the invention finds numerous applications in many technical fields, and in particular in the fields of chemistry, pharmacy, physics, aeronautics, architecture, in particular naval (for example for the behavioral study of a boat or an offshore platform, replacing and / or complementing the hull basins), medicine, in particular within the framework of the study of the development and treatment of certain diseases (by for example cancers) or reaction mechanisms (for example activation of insulin), ergonomics, in particular for the production of equipment specifically adapted for disabled people, and in the field of road traffic.
  • the invention is not limited to the embodiments of the simulation device described above, only by way of example, but it encompasses all the variants that a person skilled in the art may envisage within the framework of the claims below. after.
  • MyViewer public Examiner3D ⁇ public: AR_CLASS (MyViewer) AR_CONSTRUCTOR (MyViewer) protected: virtual void _onKeyPress (const Viewer3D :: KeyPressEvent &evt); ⁇ ;
  • MyViewer MyViewer (ArCW & arCW): Examiner3D (arCW) ⁇
  • B62 MyViewer:: ⁇ My Viewer (void) ⁇

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Analytical Chemistry (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Un ordinateur (C) est agencé de manière à supporter en mode multi-tâches une programma­tion par objets activés, représentatifs de systèmes à simuler, et héberge un dispositif (D) de simulation du monde réel. Ce dispositif comprend un logiciel de simulation par objets de l'évolution conjointe de certains au moins des objets activés comportant i) des objets d'état contenant chacun au moins une donnée d'espace et/ou de temps et/ou au moins une donnée de propriété, définissant un état courant, ii) des objets d'interaction contenant chacun la désignation d'au moins l'un des objets d'état et d'au moins une fonction applicable à l'un au moins de ces objets d'état, et définissant à chaque instant la topologie du système simulé, et iii) un gestionnaire de simulation capable de travailler par séquences sur une sélection d'objets d'interaction, et d'activer chaque objet d'interaction une unique fois lors de chaque séquence, selon un ordre variant de façon au moins partiellement aléatoire d'une séquence à l'autre, de manière à appliquer chacune de ses fonctions à l'état courant de chaque objet d'état qu'il désigne pour faire évoluer son état vers un nouvel état courant.

Description

DISPOSITIF DE SIMULATION DU MONDE REEL PAR TRAITEMENT ASYNCHRONE ET CHAOTIQUE
L'invention concerne la simulation informatique du monde réel, et notamment de l'évolution temporelle de milieux objets de phénomènes physiques et/ou chimiques et/ou biologiques.
Comme le sait l'homme de l'art, de très nombreux objets (animés ou inanimés) ou substances interagissent avec les milieux (ou média) dans lesquels ils sont placés. Or, lorsque l'homme conçoit un nouvel objet, comme par exemple un bateau, ou bien lorsqu'il tente de comprendre un mécanisme réactionnel, comme par exemple le développement d'un cancer, il lui est généralement impossible de prendre en compte toutes les interactions, ou du moins les principales, notamment lorsqu' il utilise des maquettes. Par conséquent, il arrive fréquemment que l'objet final ne procure pas les résultats escomptés, ou que l'explication avancée ne corresponde pas à la réalité, en raison de la complexité et/ou de la combinaison des interactions présentes dans le monde réel. Ainsi, un bateau peut s'avérer incapable de supporter certains états de mer, alors même qu'il avait fait l'objet d'études préalables poussées, y compris dans un bassin de carène.
Afin de mieux anticiper le comportement final d'un objet ou produit, ou de mieux comprendre un mécanisme réactionnel, de nombreux industriels et de nombreux chercheurs utilisent des dispositifs de simulation informatique du monde réel.
Ces dispositifs de simulation reposent généralement sur une modélisation des phénomènes physiques et/ou chimiques et/ou biologiques sous la forme d'équations différentielles. En l'absence de solution analytique, la simulation informatique doit s'appuyer sur des méthodes itératives, qui passent d'un état courant du système considéré à un état suivant de ce même système. Chaque système est généralement décomposé en sous-systèmes ou mailles dont les évolutions respectives sont calculées en parallèle, de façon synchrone. Par conséquent, l'état du système à l'instant T+l résulte de l'application en parallèle des phénomènes sélectionnés à l'état de chaque maille à l'instant T, sans se préoccuper des conséquences que cela peut induire entre mailles. En outre, cette technique de simulation ne favorise pas les modifica- tions des paramètres de simulation en cours de travail, ni la combinaison de modèles de natures différentes, ce qui nuit à sa généralité d'application.
L'invention a donc pour but d'améliorer la situation.
Elle propose à cet effet un dispositif de simulation du monde réel, propre à être implanté dans un ordinateur capable de supporter en mode multi-tâches une programmation par objets activés, représentatifs de systèmes à simuler.
Ce dispositif se caractérise par le fait qu' il comprend un logiciel de simulation par obj ets de l'évolution conjointe de certains au moins des objets activés, comportant :
- des objets d'état contenant chacun au moins une donnée d'espace et/ou de temps et/ou au moins une donnée de propriété, définissant un état courant,
- des objets d'interaction contenant chacun la désignation d'au moins l'un des objets d'état et d'au moins une fonction applicable à l'un au moins de ces objets d'état, et définissant à chaque instant la topologie du système simulé,
- un gestionnaire de simulation capable de travailler par séquences sur une sélection d' obj ets d'interaction, et d'activer chaque objet d'interaction une unique fois lors de chaque séquence, selon un ordre variant de façon au moins partiellement aléatoire d'une séquence à l'autre, de manière à appliquer chacune de ses fonctions à l'état courant de chaque objet d'état qu'il désigne pour faire évoluer son état vers un nouvel état courant.
En d'autres termes, le dispositif selon l'invention fonctionne selon un mode asynchrone, du fait que les états respectifs des objets activés varient les uns après les autres au sein de chaque séquence, compte tenu des états respectifs des autres objets activés, et chaotique, du fait que l'ordre de traitement de chaque objet activé varie de façon aléatoire d'une séquence à l'autre. Il est possible d'activer ou supprimer à tout moment (c'est-à-dire en temps réel) un ou plusieurs objets, afin de modifier les conditions de travail et/ou le système simulé sans qu'il faille recommencer intégralement la simulation, ce qui confère au dispositif un véritable caractère interactif.
Le logiciel de simulation peut en outre comprendre des objets d'interaction interne contenant la désignation d'un seul objet d'état et d'au moins une fonction applicable à cet objet d'état, et des objets d'interaction mutuelle contenant la désignation d'au moins deux objets d'état et d'au moins une fonction applicable à des données de propriété de ces objets d'état désignés.
Par ailleurs, certains au moins des objets d' état peuvent comprendre une donnée de propriété qui représente une grandeur intensive, et/ou certains au moins des objets d'interaction peuvent comporter une fonction faisant intervenir une grandeur extensive ou intensive.
On peut également utiliser des objets d'état qui pour certains au moins d'entre eux, comprennent des sous-objets d'état, ainsi qu'éventuellement des sous-objets d'interaction opérant sur ces sous-objets d'état.
En outre, le logiciel de simulation peut comporter des classes d'objets qui définissent des structures d'objets d'état et d'objets d'interaction. Les objets d'états et d'interaction sont alors dérivés de ces classes par instanciation.
De plus, le logiciel de simulation peut comporter un ordonnanceur capable de fonctionner soit selon un mode en temps réel.; dans lequel il fonctionne selon une fréquence choisie, soit selon un mode en temps virtuel, dans lequel il fonctionne de façon périodique mais pendant des durées variables d'une période à l'autre.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels :
- la figure 1 illustre de façon très schématique, sous la forme de blocs fonctionnels, un ordinateur équipé d'un exemple de réalisation d'un dispositif de simulation selon l'invention, et
- la figure 2 est un organigramme détaillant un exemple de fonctionnement d'un dispositif selon l'invention.
Les dessins annexés pourront non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant.
L'invention concerne un dispositif de simulation du monde réel, interactif. Comme cela est illustré schématiquement et de façon fonctionnelle sur la figure 1, un dispositif de simulation selon l'invention D peut-être installé dans un ordinateur C comportant un système d'exploitation OS et des moyens de traitement et de calcul CPU adaptés àun fonctionnement dans un mode multi-tâches, tel que celui offert par l' environne- ment oRis décrit notamment dans le document "Systèmes multi-agents", pages 499 à 524, RSTI - TSI, 21/2002. Un tel environnement multi-tâches est particulièrement bien adapté à la programmation par objets activés, par exemple en langage C++ ou Java. L'environnement multi-tâches oRis est couplé, comme le dispositif D qui est illustré, à un compilateur (ici nommé "compilateur de programmation objet"). Par ailleurs, l' environnement oRis peut- être couplé, comme le dispositif D qui est illustré, à un traducteur en langage C++ (ici nommé "interpréteur de programmation objet") afin d'améliorer son efficacité par compilation. Cet interpréteur peut même être adapté de manière à constituer un compilateur en ligne dans lequel le code exécuté est un code compilé en ligne et modifiable de façon dynamique. Un tel environnement multi-tâches, constituant une évolution d'oRis, est connu sous le nom ARéVi.
Le dispositif D comprend un logiciel de simulation de l'évolution conjointe d'objets activés (ici nommé "simulateur général"). Plus précisément, ce logiciel de simulation (ou simulateur général) comporte des objets qui peuvent être décomposés en deux groupes.
Un premier groupe (nommé "groupe d'objets d'état") comprend des objets dits "d'état" contenant chacun une ou plusieurs données d'espace (X,Y,Z) et/ou de temps (T) et/ou une ou plusieurs données de propriété (ou paramètres, ou encore attributs), qui définissent ensemble un état courant pour l'objet d'état concerné.
Dans le cas le plus simple, dans lequel il n'existe qu'un seul objet d'état activé, l'objet d'interaction peut ne pas désigner l'objet d'état, celui-ci étant alors désigné de façon implicite.
Par ailleurs, dans le cas le plus simple, la donnée d'espace-temps d'un objet d'état peut se réduire au seul temps. Certains au moins des obj ets d' état comprennent une donnée de propriété qui représente une grandeur intensive.
Dans un premier exemple relatif à un réacteur chimique, un obj et d'état peut-être un volume non localisé, et une donnée de propriété peut-être une concentration d'une substance chimique.
Dans un second exemple relatif à une veine sanguine, un objet d'état peut-être une maille volumique localisée dans l'espace, une donnée d'espace peut-être la localisation géomé- trique dans un repère choisi, et une donnée de propriété peut-être une concentration chimique ou la température à l'intérieur d'une maille.
Un second groupe (nommé "groupe d'objets d'interaction") comprend des objets dits
"d'interaction" (ou activités) contenant chacun la désignation d'au moins l'un des objets d'état et d'au moins une fonction applicable à l'un au moins de ces objets d'état désignés.
Le mot "fonction" doit être compris dans sa définition informatique et non mathématique, selon laquelle elle prend quelque chose (n'importe quoi de défini) pour délivrer un résultat.
Une fonction peut ainsi désigner une méthode, ou un procédé, ou encore un comportement à mettre en oeuvre.
Il est important de noter qu'une fonction peut dépendre des données de propriété d'objets d'état.
Certains au moins des objets d'interaction comprennent une donnée de propriété qui représente une grandeur intensive ou extensive.
Dans le premier exemple précité, relatif à un réacteur chimique, un objet d'interaction peut- être une réaction chimique qui manipule les données de propriété "concentration(s)" de l'objet d'état "volume", et la réaction chimique peut-être caractérisée par un paramètre "vitesse de réaction" qui peut dépendre des données de propriété "concentration(s)".
Dans le second exemple précité, relatif à la veine sanguine, un objet d'interaction peut-être un "diffuseur thermique" qui équilibre les données de propriété de température entre deux mailles adjacentes, et le diffuseur thermique peut-être caractérisé par le paramètre "conductivité thermique".
Chaque objet d'interaction (ou activité) est donc associé à au moins un objet d'état par une fonction, et un objet d'état peut être associé à plusieurs objets d'interaction (ou activités). Une fonction ne modifie que les paramètres du ou des objets d'état auxquels elle est associée, sans modifier les paramètres des autres objets d'état et objets d'interaction. Par ailleurs, les caractéristiques des objets d'état peuvent permettre de choisir la fonction associée aux objets d'interaction ou d'en modifier les caractéristiques. En outre, une fonction peut-être modifiée de façon temporaire ou permanente en fonction des paramètres d'un objet d'état associé.
Comme on le verra plus loin, un objet d'interaction peut constituer une interface définie, généralement avec une orientation, entre deux milieux dits "source" et "cible" (éventuelle- ment confondus) constituant des objets d'état. L'interface fait alors le lien entre les deux milieux, qui sont en liaison à un instant donné (notion de synchronicité forte), et modifie leurs paramètres respectifs (par exemple, l'interface peut être une différence de densité entre deux milieux qui provoque une diffusion moléculaire à une certaine vitesse).
Tout type d'interface peut être envisagé, et notamment des interfaces de transport (par exemple de molécules, de chaleur, de courant, et analogues), et des interfaces de relaxation (par exemple de réactions chimiques ou nucléaires). Par conséquent, un milieu peut ne pas avoir d' extension spatiale, celle-ci étant induite, tout comme les éventuelles vitesses, par une ou plusieurs interfaces. Par ailleurs, une activité appliquée à un milieu peut modifier le milieu, comme par exemple des phénomènes de relaxation, ce qui correspond à une auto- activation interne au milieu.
Le logiciel de simulation (ou simulateur général) comprend également un gestionnaire de simulation couplé aux groupes d'objets d'état et d'objets d'interaction et agencé de manière à créer son propre sequenceur ou ordonnanceur (ou en anglais "scheduler'") afin de travailler de façon séquentielle sur une sélection d'objets d'interaction dudit groupe d'objets d'interaction. Plus précisément, le gestionnaire de simulation est chargé d'activer une unique fois lors de chaque séquence, sous le contrôle du sequenceur (ou scheduler) qu'il crée pour l'occasion, chaque objet d'interaction sélectionné, selon un ordre qui varie de façon au moins partiellement aléatoire d'une séquence à l'autre, afin d'appliquer chacune de ses fonctions à l'état courant de chaque objet d'état qu'il désigne de manière à faire évoluer son état vers un nouvel état courant.
En d' autres termes, comme cela est illustré à titre d' exemple sur 1 ' organigramme de la figure 2, l'utilisateur choisit tout d'abord, dans une étape 10, parmi les premier et second groupes d'objets, un ou plusieurs objets d'état et un ou plusieurs objets d'interaction qui se rapportent à ce ou ces objets d'état choisis, afin que le dispositif D simule l'évolution spatio- temporelle du système représenté par lesdits objets choisis. Cela "pré-active" chaque objet d'interaction choisi au sein du logiciel de simulation.
Puis, dans une étape 20, le gestionnaire de simulation initialise un compteur de séquences en plaçant la valeur n du compteur à 1 , et crée une liste d'objets d'état et d'objets d'interac- tion. La première séquence (n=l ) commence par une étape 30 dans laquelle le gestionnaire de simulation sélectionne de façon aléatoire, au sein de la liste d'objets d'interaction, l'un des objets d'interaction choisis, ce qui l'active momentanément. Chaque fonction de l'objet d'interaction sélectionné et activé est alors appliquée à l'état courant de chaque objet d'état de la liste d'objets d'état avec lequel il est en relation, ce qui modifie éventuellement son état en cours. L'activation et l'application (ou exécution) de chaque fonction à chaque objet d'état choisi constituent l'étape 40.
Puis, dans une étape 50, le gestionnaire de simulation supprime de la liste d'objets d'interaction de la séquence en cours l'objet d'interaction qu'il vient d'appliquer.
Ensuite, dans une étape 60, le gestionnaire de simulation effectue un test destiné à déterminer s'il reste d'autres objets d'interaction à appliquer dans la liste d'objets d'interaction de la séquence en cours.
Si la liste d'objets d'interaction de la séquence en cours n'est pas vide, le gestionnaire de simulation retourne à l'étape 30 afin de procéder à la sélection de façon aléatoire d'un objet d'interaction restant. Comme indiqué ci-avant, il active alors ce nouvel objet d'interaction sélectionné et applique chacune de ses fonctions à l'état courant de chaque objet d'état, éventuellement modifié par l'activation de l'objet d'interaction précédent (lequel ne peut plus être utilisé dans la séquence en cours). Le gestionnaire de simulation reproduit ces opérations (sélection-activation, application et mise(s) à jour) autant de fois qu'il y a d'objets d'interaction sélectionnés dans sa liste d'objets d'interaction, de sorte que chaque fonction de chaque objet d'interaction soit appliquée une unique fois à chaque objet d'état activé auquel il est associé. Une fois cela terminé, la première séquence (n=l), correspondant à l'instant T≈O, est achevée.
Lorsque la liste d'objets d'interaction de la séquence en cours est vide, le gestionnaire de simulation incrémente d'une unité, dans une étape 70, la valeur en cours n du compteur de séquences. Bien entendu, cette étape 70 comporte un test sur le nombre de séquences à effectuer. Si le nombre de séquences effectuées est égal au nombre maximal prévu, le gestionnaire de simulation met fin à la simulation. En revanche, s'il reste au moins une séquence à effectuer, le gestionnaire de simulation retourne à l'étape 20 pour effectuer une nouvelle séquence correspondant à un instant T+l, T+2, ..., T+n. Il réitère alors à chaque nouvelle séquence les opérations précitées.
La durée de la simulation, et donc le nombre maximal de séquences effectuées par le gestionnaire de simulation, dépend de l'application concernée, ou du paramétrage choisi par l'utilisateur compte tenu de l'application. Mais, la simulation peut être interrompue à chaque instant par l'utilisateur à l'aide d'une instruction d'arrêt transmise au logiciel de simulation grâce à une interface homme/machine de l'ordinateur C. Il est important de noter qu'une simulation interrompue à la demande d'un utilisateur peut-être reprise ultérieurement.
En raison de ce mode de fonctionnement séquentiel et chaotique du logiciel de simulation, l'utilisateur peut à chaque instant intervenir dans une simulation, soit sous la forme d'un "avatar" pour interagir lui-même avec l'objet de la simulation, par exemple le milieu, soit pour ajouter à, ou supprimer de, sa sélection un ou plusieurs objets d'état et/ou un ou plusieurs objets d'interaction. L'utilisateur peut également décider de modifier au moins partiellement la définition (ou structure) d'un ou plusieurs objets d'état ou d'interaction.
Cela confère au logiciel de simulation une grande interactivité. Trois exemples permettant de mieux comprendre ce que représentent les objets d'état et d'interactions sont donnés ci-après. Pour éviter d'alourdir inutilement la description, les exemples sont simplifiés et réduits à ce qui est nécessaire pour permettre à l'homme du métier de comprendre comment on peut mettre en oeuvre l'invention.
Un premier exemple concerne la simulation de la cinétique chimique au sein d'un réacteur chimique. Le réacteur chimique constitue un objet d'état représentant un milieu comportant des substances chimiques, et au sein duquel peuvent survenir N réactions chimiques constituant autant d'objets d'interaction.
L'objet d'état réacteur chimique est par exemple associé à des données de propriété représentant les concentrations (C1(T), C2(T), ..., Cn(T)) à l'instant T des n substances chimiques présentes initialement dans le réacteur. Ces concentrations définissent ici l'état (à l'instant T) de l'objet d'état réacteur chimique, dont on souhaite simuler l'évolution temporelle.
Chaque objet d'interaction réaction chimique est par exemple caractérisé par des données de propriété représentant, d' une première part, la vitesse de la réaction V = f(C 1 , C2, ... , Cn), d'une deuxième part, les réactifs concernés par la réaction (RI , R2, ..., Rn), d'une troisième part, les produits résultants de la réaction (PI, P2, ..., Pm), et d'une quatrième part les coefficients stoechiométriques définissant les proportions initiales des réactifs à T=0. En outre, chaque objet d'interaction réaction chimique est par exemple associé à une fonction représentant le comportement de la réaction : dans un premier temps on lit les concentrations (C1(T), C2(T), ..., Cn(T)) en cours des réactifs présents à l'instant T dans le réacteur chimique, dans un deuxième temps on calcule la vitesse de réaction V qui dépend des concentrations des réactifs présents dans le réacteur chimique, et dans un troisième temps on modifie les concentrations des réactifs et des produits après un temps dT à la vitesse de réaction V.
Ici chaque objet d'interaction n'agit que sur un unique objet d'état, de sorte qu'il constitue un objet d'interaction interne. Dans ce premier exemple, l'utilisateur va donc choisir son objet d'état (c'est-à-dire la composition initiale de son réacteur chimique) et ses N objets d'interaction (c'est-à-dire les N réactions chimiques qui sont impliquées du fait de la composition choisie). Le gestionnaire de simulation peut alors débuter son traitement séquentiel.
Comme indiqué précédemment, il débute une première séquence en sélectionnant de façon aléatoire l'un des N objets d'interaction choisis. Cet objet d'interaction est activé afin qu'il applique sa fonction (comportement de la réaction) à l'état courant de l'unique objet d'état, défini ici par les concentrations (C1(T), C2(T), ..., Cn(T)) en cours des réactifs (lors de la première séquence T=0). Le gestionnaire met à jour les concentrations (C1(T), C2(T), ..., Cn(T)) des réactifs. Puis, il sélectionne de façon aléatoire l'un des N-l objets d'interaction restants, afin de l'activer et d'appliquer sa fonction au nouvel état courant de l'unique objet d'état. Il reproduit ces opérations N fois de sorte que chaque fonction de chaque objet d'interaction soit appliquée une unique fois à l'objet d'état. La première séquence est alors terminée.
Le gestionnaire débute alors une nouvelle séquence, correspondant à l'instant T+l, si cela s'avère nécessaire, en réitérant les opérations précitées. La simulation prend fin lorsqu'il ne reste plus de réactifs pour produire des produits, ou bien lorsque l'utilisateur adresse une instruction d'arrêt au logiciel de simulation.
Un deuxième exemple concerne la simulation de la diffusion moléculaire de M diffuseurs au sein d'un espace découpé en K mailles.
Chacune des K mailles constitue un objet d'état caractérisé, par exemple, par une donnée de position (ou localisation topographique ou géographique dans un repère 3D) et par des données de propriété représentant les concentrations (C1(T), C2(T), ..., Cn(T)) à l'instant T de n substances chimiques (SI, S2, ..., Sn) présentes dans la maille. Ces concentrations définissent ici l'état (à l'instant T) de la maille.
Chacun des M diffuseurs constitue un objet d'interaction caractérisé, par exemple, par des données de propriété (ou paramètres) représentant, d'une première part, la substance diffusée Si, d'une deuxième part, la vitesse de diffusion tridimensionnelle V = (Vx, Vy, Vz) de la substance Si, et d'une troisième part, les deux mailles entre lesquelles s' effectue la diffusion. En outre, chaque diffuseur (objet d'interaction) est par exemple associé à une fonction représentant son comportement : dans un premier temps on lit la concentration Ci(T) de la substance Si à diffuser dans chacune des deux mailles, dans un deuxième temps on calcule les quantités à diffuser (par exemple en utilisant la loi de Fick généralisée), et dans un troisième temps on modifie la concentration du diffuseur Si dans chacune des deux mailles après un temps dT à la vitesse de diffusion V. Les données de propriété représentent ici les attributs (ou paramètres) de la fonction (comportement du diffuseur).
Ici chaque objet d'interaction agit sur deux objets d'état, de sorte qu'il constitue un objet d'interaction mutuelle. Par ailleurs, chaque objet d'interaction présente ici une structure (ou définition) classique reposant sur au moins une fonction désignant au moins un objet d'état, ainsi qu'éventuellement des paramètres ou règle(s), ou encore loi(s), liés à la fonction et constituant des données de propriété. Mais, leur structure peut être plus complexe, par exemple lorsqu'elle comporte un ou plusieurs sous-objets d'interaction. En outre, les mailles sont ici de type tridimensionnel (3D), mais dans certaines applications elles peuvent être de type bidimensionnel (2D), voire même unidimensionnel (1D).
Dans ce deuxième exemple, l'utilisateur va donc choisir ses K objets d'état (c'est-à-dire les K mailles de diffusion) et ses M objets d'interaction (c'est-à-dire les M diffuseurs). Le gestionnaire de simulation peut alors débuter son traitement séquentiel.
Il débuté une première séquence en sélectionnant de façon aléatoire l'un des M objets d'interaction choisis. Cet objet d'interaction est activé afin qu'il applique sa fonction (comportement du diffuseur), compte tenu de ses propres attributs, à l'état courant des K objets d'état (mailles), défini ici par les concentrations (C1(T), C2(T), ..., Cn(T)) en cours des substances chimiques (SI, S2, ..., Sn) dans les différentes mailles (lors de la première séquence T=0). Le gestionnaire met à jour les concentrations (C1(T), C2(T), ..., Cn(T)) des substances (SI, S2, ..., Sn) dans chacune des K mailles. Puis, il sélectionne de façon aléatoire l'un des N-l objets d'interaction restants, afin de l'activer et d'appliquer sa fonction au nouvel état courant de chaque objet d'état. Il reproduit ces opérations N fois de sorte que chaque fonction de chaque objet d'interaction soit appliquée une unique fois à chaque objet d'état. La première séquence est alors terminée. Le gestionnaire débute alors une nouvelle séquence, correspondant à l'instant T+l, si cela s'avère nécessaire, en réitérant les opérations précitées. La simulation prend fin lorsque les concentrations (C1(T), C2(T), ..., Cn(T)) des substances chimiques (SI, S2, ..., Sn) sont respectivement identiques dans chacune des K mailles, ou bien lorsque l'utilisateur adresse une instruction d'arrêt au logiciel de simulation.
Dans un troisième exemple, on peut combiner les deux exemples précédents de manière à simuler l'évolution de la cinétique chimique et de la diffusion moléculaire au sein d'une même veine.
Par exemple, on choisit K objets d'état constituant N réacteurs chimiques localisés dans l'espace 3D. Chaque réacteur chimique est par exemple associé aune donnée de position (ou localisation géographique dans un repère 3D) et à des données de propriété représentant les concentrations (C1(T), C2(T), ..., Cn(T)) à l'instant T de n substances chimiques (SI, S2, ..., Sn) présentes dans la maille. Ces concentrations définissent ici l'état (à l'instant T) de la maille.
Par ailleurs, on choisit par exemple N+M objets d'interaction constituant N réactions chimiques et M diffuseurs.
Chaque réaction chimique est par exemple associée à des données de propriété représentant, d'une première part, la vitesse de la réaction V ≈ f(Cl, C2, ..., Cn), d'une deuxième part, les réactifs concernés par la réaction (RI, R2, ..., Rn), à T=0, d'une troisième part, les produits résultants de la réaction (PI, P2, ..., Pm), et d'une quatrième part les coefficients stoechiométriques définissant les proportions initiales des réactifs à T=0. Chaque réaction chimique est également, par exemple, associé à une fonction représentant le comportement de la réaction : dans un premier temps on lit les concentrations (C1(T), C2(T), ..., Cn(T)) en cours des réactifs présents à l'instant T dans le réacteur chimique, dans un deuxième temps on calcule la vitesse de réaction V qui dépend des concentrations des réactifs présents dans le réacteur chimique, et dans un troisième temps on modifie les concentrations des réactifs et des produits après un temps dT à la vitesse de réaction V. Chaque diffuseur est par exemple associé à des données de propriété représentant, d'une première part, la substance diffusée Si, d'une deuxième part, la vitesse de diffusion tridimensionnelle V = (Vx, Vy, Vz) de la substance Si, et d'une troisième part, les deux mailles entre lesquelles s'effectue la diffusion. Chaque diffuseur est également, par exemple, associé à une fonction représentant son comportement : dans un premier temps on lit la concentration Ci(T) de la substance Si à diffuser dans chacune des deux mailles, dans un deuxième temps on calcule les quantités à diffuser (par exemple en utilisant la loi de Fick généralisée), et dans un troisième temps on modifie la concentration du diffuseur Si dans chacune des deux mailles après un temps dT à la vitesse de diffusion V. Les données de propriété représentent ici les attributs (ou paramètres) de la fonction (comportement du diffuseur).
Le fonctionnement du dispositif est alors identique à celui présenté dans les exemples précédents, mais cette fois les concentrations des différentes substances évoluent non seulement en fonction des réactions chimiques, mais également en fonction des mailles où elles s'effectuent. Par conséquent, chaque séquence comporte N+M tirages aléatoires permettant d'appliquer successivement les fonctions des N+M objets d'interaction aux K réacteurs chimiques.
Bien entendu, 1 ' invention peut s ' appliquer à des applications beaucoup plus complexes que celles présentées ci-dessus à titre d'exemple illustratif. Elle s'applique également à des applications plus simples dans lesquelles le logiciel n'intervient que sur un unique objet d'état activé, à l'aide d'un unique objet d'interaction interne. Par ailleurs, dans certaines applications l'un au moins des objets d'état peut présenter une structure (ou définition) complexe reposant sur un ou plusieurs sous-objets d'état (présentant la structure classique d'un objet d'état), éventuellement associé à un ou plusieurs sous-objets d'interaction (présentant la structure classique d'un objet d'interaction).
Il est maintenant fait référence au tableau de l'annexe XI, pour une description, au niveau du code, d'un exemple de mise en oeuvre de l'invention faisant intervenir un objet d'état appelé "milieu", et plus précisément "classe milieu", et un objet d'interaction appelé "interface", et plus précisément "classe interface". Le but de cette application est d'associer une indication de couleur à une indication de densité au sein du milieu. Le code n'apparaît que dans la seconde colonne du tableau, dont la première colonne ne comporte que des repères alphanumériques ne faisant pas partie du code.
L'annexe XI commence, en A, par des déclarations "#incîude" qu'il est inutile de détailler du fait qu'elles sont bien connues de l'homme du métier. Ensuite, en B, est déclarée une classe interface,associée à la classe milieu traitée en détail en C. Après l'en-tête de classe Cl, la classe milieu comprend la déclaration de méthodes spécifiques C20 à C30, puis en C4 une fonction (ou méthode) "activate", et enfin des variables protégées énoncées en C5. Dans l'annexe XI, les déclarations de méthodes (ou fonctions) sont allégées des définitions de type/paramètres, puisque l'homme de métier retrouvera celles-ci dans l'énoncé détaillé de chaque méthode.
Parmi les variables protégées indiquées en C5, on peut noter :
- des " _interfaces" ', qui sont regroupées au sein d'un tableau d'un type particulier dit StlVector (classe standard C++), et
- une variable "_it", qui est de type ArRef (classe propre à l'environnement ARéVi).
Vient ensuite le détail de la classe interface (par souci d'homogénéité elle reste désignée par B). Elle comprend une méthode de définition et une méthode de construction, suivies de déclaration de méthodes spécifiques B20 à B31 et de la méthode activate B4. Enfin sont définies des variables protégées B5 où l'on note à nouveau en particulier :
- une "_source" qui est de type milieu, et
- une "Jarget" qui est également de type milieu.
Les définitions des méthodes de la classe milieu interviennent ensuite (en C 11 -C 14 et C20- C30) en grand détail. Les rubriques C 11 à C 13 définissent le constructeur de la classe milieu. En Cl 1 sont initialisées les variables protégées de la classe milieu.
En C12 apparaît une définition d'une forme 3D dite "Vrml". Le code Vrml permet de faire de la visualisation 3D en ligne. Cette forme est définie par une chaîne de caractères conformément à la syntaxe Vrml décrite par exemple à l'adresse http://www.vrml.org. Cette forme est ensuite visualisée et mise en couleurs. La rubrique C 13 associe au milieu une activité destinée à déclencher la méthode activate de la rubrique Cl 4.
La rubrique C14 est un destructeur de l'objet d'état milieu.
Les rubriques C20 à C30 incluse donnent le détail de la construction des méthodes spécifiques déjà évoquées sous la même identité pour la classe milieu.
La méthode activate à appliquer au milieu est définie en C4. Elle permet de relier une indication de couleur à l'indication de densité, et plus précisément de changer la couleur par tirage aléatoire. En d'autres termes, on modifie les attributs rouge, vert, bleu du milieu chaque fois qu' activate est appliquée (ou activée).
Interviennent ensuite des définitions pour la classe interface, avec en B10-B11 la définition du constructeur. Plus précisément, en B10 on initialise les variables protégées de la classe interface, tandis qu'en Bll on associe à l'interface une activité destinée à appliquer la méthode activate définie en B4.
La rubrique B12 est un destructeur de l'objet d'interaction interface.
Viennent ensuite les détails des méthodes spécifiques B20 à B31 déjà citées.
La méthode activate de Y interface est définie en B4. Il s'agit de calculer une dif usivité en fonction d'une densité de milieu source et d'une densité de milieu cible, afin de propager l'écart entre les deux densités, si du moins cet écart est significatif. L'écart noté "delta" est calculé comme l'application d'une fonction diffusivité à la densité de milieu source rhos, diminuée de la densité de milieu cible rhot. Pour ce faire, on demande d'abord au milieu source et au milieu cible quelles sont leurs densités respectives. Puis, on calcule la valeur absolue des différences de couleurs. Si cette valeur absolue est supérieure à une valeur choisie (ici égale à 0,01), on augmente la densité la plus faible et on diminue la densité la plus forte. Puis, on effectue la mise à jour des valeurs à une vitesse choisie. Les rubriques B60-B63 permettent de définir le type des fenêtres de visualisation 3D qui seront utilisées par l'application.
C'est alors qu'intervient un élément important pour l'invention qui est l'ordonnanceur ou sequenceur (ou en anglais "scheduler"). Les rubriques S10, S20, S21, S22, S30, S31 et S41 permettent d'initialiser la simulation.
En l'espèce, la rubrique S10 initialise un scheduler en temps virtuel, c'est-à-dire que son fonctionnement n'est pas astreint à respecter le temps réel, mais chacune de ses itérations représente logiquement, et non physiquement, une durée de une milliseconde (1 ms). Bien entendu, le scheduler peut également fonctionner en temps réel. Dans ce cas, chacune de ses itérations dure physiquement une période choisie.
La rubrique S20 permet d'initialiser les dimensions du milieu grâce aux arguments de la ligne de commande. La rubrique S21 permet de créer et d' initialiser les milieux. La rubrique S22 permet de créer et d'initialiser les interfaces.
Les rubriques S31 et S32 réalisent un affichage auxiliaire, qui se fait ici par la voie spéciale de communication avec l'écran dit "flot d'erreur".
La rubrique S41 affiche la scène à traiter, dans des conditions de perspective choisies.
Enfin, la rubrique S50 est le programme principal main qui initialise le fonctionnement du système. Plus précisément, ce programme crée tout d'abord un système 3D, puis il l'appelle pour qu'il active la méthode donnée à la rubrique S10 afin qu'elle crée le scheduler (ou sequenceur), les milieux et l'interface.
On comprendra que la structure de classes, présentée ci-avant, peut être résumée de la manière indiquée schématiquement dans l'annexe X2.
La transition entre la représentation de l'annexe X2 et le code détaillé de l'annexe XI est considérée comme accessible à l'homme du métier, dès lors qu'un exemple en a été donné. L'invention trouve de très nombreuses applications dans de nombreux domaines techniques, et notamment dans les domaines de la chimie, de la pharmacie, de la physique, de l'aéronautique, de l' architecture, en particulier navale (par exemple pour l'étude comportemental d'un bateau ou d'une plate-forme offshore, en remplacement et/ou en complément des bassins de carène), de la médecine, notamment dans le cadre de l'étude du développement et du traitement de certaines maladies (par exemple les cancers) ou de mécanismes réactionnels (par exemple l'activation de l'insuline), de l'ergonomie, notamment pour la réalisation d'équipements spécifiquement adaptés à des personnes handicapées, et dans le domaine de la circulation routière.
L'invention ne se limite pas aux modes de réalisation de dispositif de simulation décrits ci- avant, seulement à titre d'exemple, mais elle englobe toutes les variantes que pourra envisager l'homme de l'art dans le cadre des revendications ci-après.
Annexe XI
Figure imgf000020_0001
Figure imgf000021_0001
Figure imgf000022_0001
Figure imgf000023_0001
Figure imgf000024_0001
Figure imgf000025_0001
Figure imgf000026_0001
Figure imgf000027_0001
B4 bool Interface: :activate(ArRef<Activity> /* act */, double /* & */) { double rhos,rhot; _source->getDensity(rhos); _target->getDensity(rhot); bool change=false; if(fabs(rhot-rhos)>0.01) { double delta=_diffusivity*(rhos-rhot); rhos -= delta; rhot += delta; . change≈true; } if(change) { _source->setDensity(rhos); _target->setDensity(rhot); } return(trae); }
B60 class MyViewer : public Examiner3D { public: AR_CLASS(MyViewer) AR_CONSTRUCTOR(MyViewer) protected: virtual void _onKeyPress(const Viewer3D::KeyPressEvent & evt); };
B61 AR_CLASS_DEF(MyViewer,Examiner3D)
MyViewer::MyViewer(ArCW & arCW) : Examiner3D(arCW) { } B62 MyViewer: :~My Viewer(void) { }
B63 void MyViewer: :_onKeyPress(const Viewer3D::KeyPressEvent & evt) { Examiner3D::_onKeyPress(evt); if((evt.key="+")||(evt.key=="-")) { double dist,yaw,pitch; computeCursorDirection(evt.xMouse,evt.yMouse,yaw,pitch); ArRef<Base3D> ray=new_Base3D(); ray->setLocation(thisRef()); ray->yaw(yaw); ray->pitch(pitch); ArRef<Object3D> found; getScene()->fïrstRayIntersection(ray,3,true,Milieu::CLASS0, found,dist,thisRef()); if(found) { ArRef<Milieu> m(static_cast<Milieu*>(found.c_ptr())); cerr « "Found " « m->getAlias() « " " « evtkey « endl; if(evt.key="+") { m->addSource(); } if(evt.key="-") { m->removeSourceO; } } } }
S10 ArRef<Scheduler> simulationInit(void) { ArRef<Scheduler> sched=new_VirtualTimeScheduler(l e-3); unsigned int nbX=40,nbY=20,nbZ=2; S20 if(ArSystem::getCommandLine().sizeO>l) { strToUint(nbX,ArSystem::getCommandLineO[l]); } if(ArSystem::getCommandLine().size()>2) { strToUint(nbY,ArSystem::getCommandLine()[2]); } if(ArSystem::getCommandLine().size()>3) { strToUint(nbZ,ArSystem::getCoπιnιandLine()[3]); }
S21 unsigned int x,y,z; StlVector<StlVector<StlVector<ArRef<Milieu> > > > t; for(x=0;x<nbX;x++) { StlVector<StlVector<ArRef<Milieu> > > ex; t.push_back(ex); for(y=0;y<nbY;y++) { StlVectoKArRef<Milieu> > ey; t.back().push_back(ey); for(z=0;z<nbZ;z++) { ArRef<Milieu> m=new_Milieu(); t.back().back().push_back(m); m->setPosition(x,y,z); } } } S22 for(x=0;x<nbX;x++) { for(y=0;y<nbY;y++) { for(z=0;z<nbZ;z++) { . ArRef<Interface> i; double diffusivity = 0.5; //double velocity = 1.0; if(x>0) { i=new_Interface(); i->setSource(t[x] [y] [z]); i->setTarget(t[x-l][y][z]); i->setDiffusivity(diffusivity); i->setVelocity(0.0); } if(y>0) { i=new_Interface(); i->setSource(t[x][y][z]); i->setTarget(t[x][y-l][z]); i->setDiffusivity(diffusivity); i->setVelocity(0.0); } if(z>0) { i=new_Interface(); i->setSource(t[x] [y] [z]); i->setTarget(t[x][y][z-l]); i->setDiffusivity(diffusivity/l 000); i->setVelocity(0.0); } }
}
S31 cerr « ArClass::find("Interface")->getNbInstances(true) « " interfaces" « endl;
Figure imgf000032_0001
Annexe X2 Représentation simplifiée
Figure imgf000033_0001
Figure imgf000033_0002

Claims

REVENDICATIONS
1. Dispositif (D) de simulation du monde réel, propre à être implanté dans un ordinateur (C) agencé pour supporter en mode multi-tâches une programmation par objets activés, représentatifs de systèmes à simuler, caractérisé en ce qu'il comprend un logiciel de simulation par objets de l'évolution conjointe de certains au moins desdits objets activés, comportant : - des objets d'état contenant chacun au moins une donnée d'espace et/ou de temps et/ou au moins une donnée de propriété, définissant un état courant, - des objets d'interaction contenant chacun la désignation d'au moins l'un desdits objets d'état et d'au moins une fonction applicable à l'un au moins de ces objets d'état, et définissant à chaque instant la topologie du système simulé, - un gestionnaire de simulation capable de travailler par séquences sur une sélection d'objets d'interaction, et à activer chaque objet d'interaction une unique fois lors de chaque séquence, selon un ordre variant de façon au moins partiellement aléatoire d'une séquence à l'autre, de manière à appliquer chacune de ses fonctions à l'état courant de chaque objet d'état qu'il désigne pour faire évoluer son état vers un nouvel état courant.
2. Dispositif selon la revendication 1 , caractérisé en ce que ledit logiciel de simulation comprend des objets d'interaction interne, aptes à contenir chacun la désignation d'un seul objet d'état et d'au moins une fonction applicable à cet objet d'état, et des obj ets d ' interaction mutuelle, aptes à contenir chacun la désignation d ' au moins deux objets d'état et d'au moins une fonction applicable à des données de propriété de ces objets d'état désignés.
3. Dispositif selon l'une des revendications 1 et 2, caractérisé en ce que ledit logiciel de simulation est agencé pour modifier certaines au moins desdites fonctions en fonction d'au moins une donnée de propriété d'au moins un objet d'état associé.
4. Dispositif selon l'une des revendications 1 à 3, caractérisé en ce que ledit logiciel de simulation est agencé pour sélectionner certaines au moins desdites fonctions en fonction d'au moins une donnée de propriété d'au moins un objet d'état associé.
5. Dispositif selon l'une des revendications 1 à 4, caractérisé en ce que certains au moins des objets d'état comprennent une donnée de propriété représentant une grandeur intensive.
6. Dispositif selon l'une des revendications 1 à 5, caractérisé en ce que certains au moins des objets d'interaction ont une fonction faisant intervenir une grandeur extensive ou intensive.
7. Dispositif selon l'une des revendications précédentes, caractérisé en ce que certains au moins des objets d'état comprennent des sous-objets d'état.
8. Dispositif selon la revendication 7, caractérisé en ce que certains au moins des objets d'état comprennent des sous-objets d'interaction opérant sur lesdits sous-objets d'état.
9. Dispositif selon l'une des revendications précédentes, caractérisé en ce que ledit logiciel de simulation comporte des classes d'objets définissant des structures d'objets d'état et d'objets d'interaction, lesdits objets d'états et d'interaction étant dérivés de ces classes par instanciation.
10. Dispositif selon l'une des revendications précédentes, caractérisé en ce que ledit logiciel de simulation comporte un ordonnanceur propre à fonctionner selon l'un de deux modes choisis parmi un mode en temps réel, dans lequel il fonctionne selon une fréquence choisie, et un mode en temps virtuel, dans lequel il fonctionne de façon périodique mais pendant des durées variables d'une période à l'autre.
PCT/FR2005/000124 2004-01-20 2005-01-20 Dispositif de simulation du monde réel par traitement asynchrone et chaotique WO2005081141A2 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CA002552821A CA2552821A1 (fr) 2004-01-20 2005-01-20 Dispositif de simulation du monde reel par traitement asynchrone et chaotique
JP2006550233A JP2007524162A (ja) 2004-01-20 2005-01-20 非同期カオス処理によって実世界をシミュレーションするデバイス
US10/586,610 US20070156381A1 (en) 2004-01-20 2005-01-20 Device for simulation of the real world by asynchronous and chaotic processing
EP05717454A EP1706834A2 (fr) 2004-01-20 2005-01-20 Dispositif de simulation du monde réel par traitement asynchrone et chaotique

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0400488A FR2865297B1 (fr) 2004-01-20 2004-01-20 Dispositif de simulation du monde reel par traitement asynchrone et chaotique
FR0400488 2004-01-20

Publications (2)

Publication Number Publication Date
WO2005081141A2 true WO2005081141A2 (fr) 2005-09-01
WO2005081141A3 WO2005081141A3 (fr) 2006-09-08

Family

ID=34707952

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/000124 WO2005081141A2 (fr) 2004-01-20 2005-01-20 Dispositif de simulation du monde réel par traitement asynchrone et chaotique

Country Status (6)

Country Link
US (1) US20070156381A1 (fr)
EP (1) EP1706834A2 (fr)
JP (1) JP2007524162A (fr)
CA (1) CA2552821A1 (fr)
FR (1) FR2865297B1 (fr)
WO (1) WO2005081141A2 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2919940A1 (fr) * 2007-08-06 2009-02-13 Cervval Sarl Simulation de l'evolution d'un milieu mixte par traitement asynchrone et chaotique, en particulier pour bassin d'essais virtuel

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733209B2 (en) 2015-09-30 2020-08-04 International Business Machines Corporation Smart tuple dynamic grouping of tuples
US10558670B2 (en) 2015-09-30 2020-02-11 International Business Machines Corporation Smart tuple condition-based operation performance
US10296620B2 (en) 2015-09-30 2019-05-21 International Business Machines Corporation Smart tuple stream alteration
US10657135B2 (en) 2015-09-30 2020-05-19 International Business Machines Corporation Smart tuple resource estimation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0821817B1 (fr) * 1995-01-17 1999-06-23 Intertech Ventures, Ltd. Systemes de commande bases sur des modeles virtuels simules

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4389060B2 (ja) * 2000-01-12 2009-12-24 学校法人日本大学 コンピュータグラフィック立体的画像表示における物体の荷重伝達変位を表示する方法
JP3507452B2 (ja) * 2000-03-30 2004-03-15 株式会社ソニー・コンピュータエンタテインメント 最適状態フィードバックにより協調化された群集アニメーション生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0821817B1 (fr) * 1995-01-17 1999-06-23 Intertech Ventures, Ltd. Systemes de commande bases sur des modeles virtuels simules

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DAPONTE P ET AL: "Virtual laboratory: an object-oriented framework" INSTRUMENTATION AND MEASUREMENT TECHNOLOGY CONFERENCE, 1994. IMTC/94. CONFERENCE PROCEEDINGS. 10TH ANNIVERSARY. ADVANCED TECHNOLOGIES IN I & M., 1994 IEEE HAMAMATSU, JAPAN 10-12 MAY 1994, NEW YORK, NY, USA,IEEE, 10 mai 1994 (1994-05-10), pages 11-16, XP010121743 ISBN: 0-7803-1880-3 *
JAKOBSEN H A ET AL: "A numerical study of the interactions between viscous flow, transport and kinetics in fixed bed reactors" COMPUTERS & CHEMICAL ENGINEERING ELSEVIER UK, vol. 26, no. 3, 15 mars 2002 (2002-03-15), pages 333-357, XP002311768 ISSN: 0098-1354 *
KERDELO S ET AL INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "in vitro blood coagulation versus in silico blood coagulation an individual-centered approach" IEEE 2002 INTERNATIONAL CONFERENCE ON SYSTEMS, MAN AND CYBERNETICS. (SMC'02). YASMINE HAMMAMET, TUNESIA, OCT. 6 - 9, 2002, IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS, NEW YORK, NY : IEEE, US, vol. VOL. 7 OF 7, 6 octobre 2002 (2002-10-06), pages 72-76, XP010623575 ISBN: 0-7803-7437-1 *
QUERREC G ET AL: "Uses of multiagents systems for simulation of MAPK pathway" PROCEEDINGS THIRD IEEE SYMPOSIUM ON BIOINFORMATICS AND BIOENGINEERING. BIBE 2003 IEEE COMPUT. SOC LOS ALAMITOS, CA, USA, 12 mars 2003 (2003-03-12), pages 421-425, XP002311769 ISBN: 0-7695-1907-5 *
RODIN V ET AL: "oRis: an agents communications language for distributed virtual environments" ROBOT AND HUMAN INTERACTION, 1999. RO-MAN '99. 8TH IEEE INTERNATIONAL WORKSHOP ON PISA, ITALY 27-29 SEPT. 1999, PISCATAWAY, NJ, USA,IEEE, US, 27 septembre 1999 (1999-09-27), pages 41-46, XP010530426 ISBN: 0-7803-5841-4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2919940A1 (fr) * 2007-08-06 2009-02-13 Cervval Sarl Simulation de l'evolution d'un milieu mixte par traitement asynchrone et chaotique, en particulier pour bassin d'essais virtuel
WO2009056691A1 (fr) * 2007-08-06 2009-05-07 Cervval Simulation de l'évolution d'un milieu mixte par traitement asynchrone et chaotique, en particulier pour bassin d'essais virtuel.

Also Published As

Publication number Publication date
JP2007524162A (ja) 2007-08-23
US20070156381A1 (en) 2007-07-05
FR2865297B1 (fr) 2006-05-19
WO2005081141A3 (fr) 2006-09-08
CA2552821A1 (fr) 2005-09-01
FR2865297A1 (fr) 2005-07-22
EP1706834A2 (fr) 2006-10-04

Similar Documents

Publication Publication Date Title
Auber et al. TULIP 5
KR101568893B1 (ko) 분석적 맵 모델
Parisi Programming 3D Applications with HTML5 and WebGL: 3D Animation and Visualization for Web Pages
Parisi WebGL: up and running
US5764241A (en) Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US20070094041A1 (en) Simulating user immersion in data representations
WO2008040123A1 (fr) Procédé et système pour acheminer et afficher de manière interactive des graphiques tridimensionnels
Cozzi et al. OpenGL insights
FR2962823A1 (fr) Processeur d&#39;analyse situationnelle
EP1706834A2 (fr) Dispositif de simulation du monde réel par traitement asynchrone et chaotique
EP2511842B1 (fr) Consultation de maquettes numériques à partir de postes légers
Flotyński et al. Customization of 3D content with semantic meta-scenes
Law et al. An application architecture for large data visualization: a case study
WO2010029268A1 (fr) Procede et dispositif de realisation d&#39;un modele par elements finis
Tutenel et al. Procedural filters for customization of virtual worlds
Denning Talking back to the machine: Computers and human aspiration
Lindberg Performance Evaluation of JavaScript Rendering Frameworks
Berinstein et al. Game development tool essentials
Park 3D Scene description and recording mechanis: a comparative study of various 3D create tools
Ribarsky The times they are a-changing: PC graphics moves in
Quiroz et al. Interactive Shape Perturbation
Chung Business Analysis and Metaverse.
da Costa Ribeiro Engagement of Traditionally 2D Web Applications Presented Using 3D Games
WO2022053682A1 (fr) Simulateur robotique 3d à multiples joueurs dans un navigateur
Gundersen A framework for graphical and networked applications, an online 3D game, and tools

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REEP Request for entry into the european phase

Ref document number: 2005717454

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2005717454

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2552821

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2006550233

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWP Wipo information: published in national office

Ref document number: 2005717454

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10586610

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 10586610

Country of ref document: US