Vehicle impact analysis using two-point contact curves

The B-Rep-based method for determining two-point contact curves on vehicle surfaces addresses inaccuracies in existing impact analysis, offering precise and efficient vehicle impact assessments that enhance regulatory compliance and design accuracy.

JP7836155B2Active Publication Date: 2026-03-26DASSAULT SYST DEUT GMBH
View PDF 8 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-30
Publication Date
2026-03-26

AI Technical Summary

Technical Problem

Existing vehicle impact analysis methods, particularly for head and knee impacts, are inaccurate and require extensive manual pre- and post-processing, especially when determining two-point contact locations on vehicle surfaces.

Method used

A computer-aided method utilizing B-Rep (boundary representation) to determine two-point contact curves on vehicle surfaces, employing a parallelized calculation algorithm and differential equations to accurately model impact points, reducing manual intervention and improving geometric precision.

Benefits of technology

The method provides accurate and efficient analysis of two-point contact impacts, enhancing the geometric representation and computational efficiency of vehicle impact assessments, thereby improving compliance with safety regulations and vehicle design.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007836155000040
    Figure 0007836155000040
  • Figure 0007836155000041
    Figure 0007836155000041
  • Figure 0007836155000042
    Figure 0007836155000042
Patent Text Reader

Abstract

To provide a method, system, and program for vehicle impact analysis.SOLUTION: A method provided herein comprises: providing a B-Rep representing an outer surface of a vehicle and having faces; providing a radius value of a contact sphere; and determining one or more two-point-contact curves of the B-Rep for the radius value. The determining step includes, for each of a plurality of pairs of portions of the B-Rep, applying a respective two-point-contact-curve computation algorithm. The computation algorithm is based on the respective pair of portions. The computation algorithm is parallelized over the plurality of pairs of portions.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer programs and systems, and more particularly, to a method, system, and program for vehicle impact analysis.

Background Art

[0002] For the design, engineering, and manufacture of objects, a number of systems and programs are available on the market. CAD is an acronym for computer-aided design and relates to, for example, software solutions for designing objects. CAE is an acronym for computer-aided engineering and relates to, for example, software solutions for simulating the physical behavior of future products. CAM is an acronym for computer-aided manufacturing and relates to, for example, software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role with regard to the efficiency of the technique. These technologies may be incorporated within a product lifecycle management (PLM) system. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage corporate knowledge to support the development of products from concept to end-of-life beyond long-term corporate concepts. The PLM solution provided by Dassault Systèmes (trademarks of CATIA, ENOVIA, and DELMIA) provides an engineering hub that organizes product engineering knowledge, a manufacturing hub that manages manufacturing engineering knowledge, and a corporate hub that enables connections to both the enterprise hub and the engineering and manufacturing hubs. Overall, the system provides an open object model that links products, processes, and resources to enable dynamic knowledge-based product creation and decision-making support that drives optimized product definition, manufacturing preparation, production, and service.

[0003] CAD solutions can be used for vehicle impact analysis, particularly to analyze the impact on human body parts (such as the head or knees) that are likely to occur on the exterior (interior or exterior) of a vehicle, based on a CAD model of the vehicle representing its exterior. Software solutions provided by Dassault Systèmes, in particular (under the trademark ICEM Surf), offer such functionality.

[0004] Vehicle impact analysis may include vehicle impact assessments that can essentially be called head impact assessments (hereinafter also referred to as "HID," and for convenience, the same acronym is used when considering impacts with human parts other than the head, such as the knees). Such assessments fall within the scope of safety analysis for automobiles or other passenger and commercial vehicles. In this regard, automobile companies must comply with specific specifications and / or regulations. Examples of such regulations are set forth in the EU and the United States by the following regulations. ECE-R 26 passenger car (EU, exterior). ECE-R 61 Commercial Vehicle (EU, Exterior). FMVSS 208 Frontal Impact (USA, Exterior). ECE-R21 Cockpit Structure (EU, Interior). FMVSS 201 dashboard (USA, interior).

[0005] These specifications must be thoroughly reviewed within the design process of each new vehicle and must follow the control processes of the respective authorities before the vehicle is approved for serial production. The specifications focus particularly on the static geometric analysis of the vehicle's interior and exterior, where human body parts (e.g., head or knees) are modeled as spheres of appropriate size. Next, this analysis considers geometric situations described as contact spheres attached to the exterior / interior of the vehicle. The contact spheres model the impact of a pedestrian's or passenger's head / knees on the vehicle. These situations are particularly important because they represent precise points in time from which the force applied to the human body can be estimated based on the number of contact points, their distance from each other, and the curvature of the vehicle's outer surface at the contact points.

[0006] Thus, the software solution was developed to provide a computer-implemented method for vehicle impact analysis. This method includes providing a CAD model representing the outer surface of the vehicle, providing radius values ​​for the contact sphere, and determining one or more contact shapes of the CAD model for the radius values.

[0007] Certain existing solutions allow for the automatic determination of one-point contact and non-contact vertices of a mesh representing the exterior surface of a vehicle. These specific existing solutions provide a global HID, which acts only on the tessellation of the input geometry. Other specific existing solutions allow for the determination of two-point contact locations of a mesh representing the exterior surface of a vehicle. However, these other specific existing solutions are inaccurate and ergonomic, particularly because they rely on extensive manual pre- and post-processing.

[0008] In this regard, improved solutions for vehicle impact analysis are still needed. [Overview of the Initiative]

[0009] Accordingly, a computer-aided method for vehicle impact analysis is provided. This method includes the step of providing a B-Rep representing the outer surface of the vehicle, where the B-Rep has a surface. This method includes the step of providing radius values ​​for the contact spheres. This method also includes the step of determining one or more two-point contact curves of the B-Rep for the radius values. This determination includes a two-point contact curve calculation algorithm for each of multiple pairs of sub-pairs of the B-Rep. The calculation algorithm is based on each pair of sub-pairs. The calculation algorithm is parallelized across multiple pairs of sub-pairs.

[0010] This method may include at least one of the following:

[0011] Each part of each pair of sub-parts between the aforementioned plurality of sub-parts is a respective surface of the B-Rep.

[0012] The aforementioned decision step (S30) is, Steps to tessellate B-Rep, The step of processing the tessellation, With respect to the aforementioned radius value, one-point contact vertices and non-contact vertices are identified, A transition edge is defined, and each transition edge is bounded by its one-point contact vertex and its non-contact vertex. This includes, The aforementioned calculation algorithm takes, as input, each pair of parts and each set of transition edges of each pair of parts.

[0013] The tessellation is parallelized across the set of parts, and the processing and computation algorithms are executed after the tessellation is completed.

[0014] The process is parallelized across the set of parts, and the computation algorithm is executed after the process is completed.

[0015] The calculation algorithm includes, for each pair of parts, repeating the following until each set of transition edges is empty: Select a transition edge from each set of transition edges, An attempt is made to trace the two-point contact curve based on the selected transition edge. If the tracing attempt is successful, remove all transition edges that intersect the traced two-point contact curve from each set of transition edges. Remove the selected transition edge from each set of transition edges.

[0016] Each surface of the B-Rep is supported by its respective surface parameterization, and the trace involves integrating its respective differential equation, the differential equation being based on the pair of surface parameterizations of the respective pair of parts.

[0017] The step of determining (S30) is attempting to establish one or more pairs of candidate start points, each candidate start point belonging to a respective part of each pair of parts, and each pair of candidate start points being attempted to be established based on a respective transition edge of each pair of parts; if the attempt to establish is successful, the computational algorithm selects the respective transition edges, and based on the transition edges, successfully establishes each pair of candidate start points in the step of determining (S30); the attempt to trace attempts to find respective initial points belonging to a two-point contact curve from each pair of candidate start points, and if the attempt to find is successful, traces a two-point contact curve from each initial point is included.

[0018] The attempt to establish includes bisecting the respective transition edges of each pair of parts.

[0019] The attempt to establish is parallelized across the pairs of the plurality of parts or across a set of the parts.

[0020] Furthermore, there is provided a computer program including instructions that cause a processor to execute the above method when executed by the processor.

[0021] Furthermore, there is provided a computer-readable medium having recorded thereon the above computer program.

[0022] Furthermore, there is provided a system including a process coupled with a memory having recorded thereon the above computer program.

Brief Description of the Drawings

[0023] [Figure 1] shows a flowchart of an example of the method. [Figure 2]An example of the system's graphical user interface is shown. [Figure 3] This figure shows an example of the system. [Figure 4] This shows the B-Rep format. [Figure 5] This shows the B-Rep format. [Figure 6] This shows the B-Rep format. [Figure 7] This shows the B-Rep format. [Figure 8] This shows the B-Rep format. [Figure 9] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 10] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 11] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 12] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 13] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 14] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 15]This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 16] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 17] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 18] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 19] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 20] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 21] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 22] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 23] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 24]This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 25] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 26] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 27] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 28] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 29] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 30] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 31] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 32A] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 32B]This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 33] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 34] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 35] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 36] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 37] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 38] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 39] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 40] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 41]This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 42] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 43] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 44] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 45] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 46] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 47] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 48] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 49] This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Figure 50]This document demonstrates the implementation of the method, including screenshots of the tested prototype (which may include color and / or small text, as actual screenshots). [Modes for carrying out the invention]

[0024] Referring to Figure 1, a computer-aided method for vehicle impact analysis is provided. This method includes step S10 of providing a B-Rep representing the outer surface of the vehicle. The B-Rep has a surface. This method also includes step S20 of giving a radius value for the contact sphere. The method then includes step S30 of determining one or more two-point contact curves of the B-Rep for the radius value. This already forms an improved solution for vehicle impact analysis.

[0025] Thanks to the determination of one or more two-point contact curves for radius values ​​in S30, this method enables the analysis of two-point contact impacts on vehicles. Multi-point contact impacts are particularly important to analyze because they are geometric models of the time in which the impact force is unloaded onto the considered parts of the human body.

[0026] This method is particularly effective because S10 provides a CAD model of the vehicle's outer surface, which is a B-Rep, and the resulting curve is a B-Rep curve. Consequently, this method outputs a relatively accurate geometric representation of the two-point contact impact. In fact, the B-Rep is a continuous, and therefore particularly accurate, representation of the vehicle's outer surface, and as a result, the output of this method is relatively accurate in that the curve is positioned at least accurately on the aforementioned accurate representation. The accuracy is significantly improved compared to a mesh representation of the outer surface. In fact, the mesh often derives from a tessellation of a more precise CAD model (which may also be a B-Rep), and in any case presents the result by constructing an approximation / discretization error, i.e., tessellation accuracy.

[0027] According to a first aspect of this method, the determination step S30 may include solving a corresponding differential equation for the corresponding two-point contact curve (determined in S30). The corresponding differential equation is based on B-Rep. This further improves the vehicle impact analysis.

[0028] By solving the differential equations for each two-point contact curve, this method determines each two-point contact curve in a clearly defined manner and thus yields accurate results. Furthermore, because the differential equations are based on B-Rep, i.e., are particularly accurate in representing the continuity of the outer surface of the vehicle, the two-point contact curves form a particularly accurate representation of the two-point contact impact. In fact, the solution is based on the aforementioned accurate representation and therefore yields particularly accurate results.

[0029] The accuracy was significantly improved compared to solutions based on mesh representation of the outer surface. This is particularly relevant to two-point impact analysis.

[0030] According to a second aspect of this method, the determination step S30 may include a two-point contact curve calculation algorithm for each of the multiple sub-pairs of B-Rep. The calculation algorithm is parallelized across the multiple sub-pairs. This further improves the vehicle impact analysis.

[0031] Thanks to the parallelization of the computation algorithm, this method achieves computational efficiency. The gains from parallel computation are particularly high, and the parallel threads of the computation algorithm are especially safe, thanks to the fact that parallelization is performed across multiple pairs, particularly in the B-Rep portion. In fact, a two-point contact impact occurs between a pair of parts of the vehicle's outer surface. This method takes this into account in order to properly parallelize the computation.

[0032] The first and second embodiments of the method can be combined. In such a case, the determining step S30, according to the second embodiment, includes a two-point contact curve calculation algorithm based on each pair of parts for each of multiple pairs of parts of the B-Rep. The determining step further includes, according to the first embodiment, solving the respective differential equations based on the B-Rep for each of the one or more two-point contact curves determined in parallel threads of the calculation algorithm (for example, for each such two-point contact curve).

[0033] Alternatively, the method may present a first embodiment but not a second embodiment. In such a case, the computation algorithm may be deparallelized or parallelized across different threads. Even more alternatively, the method may present a second embodiment instead of a first embodiment. In such a case, the two-point contact curve computation algorithm may exclude solving any differential equation based on B-Rep, or even any differential equation at all.

[0034] This method is performed on a computer. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any system. A typical computer implementation of the method is to perform the method using a system adapted for this purpose. This system includes a processor coupled to memory, which may contain a computer program containing instructions for performing this method. The memory may also store a database. The memory is any hardware adapted to such a storage device and may comprise several physically separate parts (e.g., a part for the program and possibly a part for the database). The system may further comprise a graphical user interface coupled to the processor.

[0035] Therefore, the steps of this method are performed by a computer, possibly fully automatically or semi-automatically. In the example, at least some of the triggers for the steps of the method may be performed through user / computer interaction. The level of user / computer interaction required depends on the expected level of automation and can be balanced with the need to implement the user's wishes. In the example, this level may be user-defined and / or predefined.

[0036] In particular, this method can perform the B-Rep provision step S10 and the radius provision step S20 through user interaction. Then, this method can perform the determination step S30 completely automatically. In other words, this method can perform the setting and / or solution of differential equations according to the first aspect, and / or the setting of parallel threads (including the definition of a set of parts of B-Rep) according to the second aspect, and / or the execution of the point contact curve calculation algorithm (within each parallel thread, i.e., across each defined set) completely automatically.

[0037] In this example, the method may include the following: Step S10: Providing B-Rep through user interaction. User-activated trigger for vehicle impact analysis. Step S20: Provide the radius through user interaction. Fully automated judgment step S30.

[0038] A B-Rep is a 3D CAD modeled object, that is, a 3D modeled object designed or created in a CAD system. Thus, this method is part of the 3D CAD design process, which in itself is part of the manufacturing process.

[0039] A modeled object is any object defined by data stored, for example, in a database. In a broad sense, the expression “modeled object” refers to the data itself. Depending on the type of system, a modeled object may be defined by different types of data. The system may actually be any combination of CAD systems, CAE systems, CAM systems, PDM systems, and / or PLM systems. In these different systems, a modeled object is defined by the corresponding data. Thus, we can say CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, since a modeled object can be defined by data corresponding to any combination of these systems, these systems are not exclusive to one of the other systems. Thus, the system may be both a CAD and a PLM system.

[0040] A CAD system further refers to any system adapted to design modeled objects based on their graphic representation, such as CATIA. In this case, the data defining the modeled object includes data that enables the representation of the modeled object. A CAD system can, for example, provide a representation of a CAD modeled object using edges or lines that have faces or surfaces. Lines, edges, faces, or surfaces can be represented in various ways, for example, by non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometric shapes can be generated, thereby generating a representation. The specifications of a modeled object can be stored in a single CAD file or multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of 1 megabyte per part. And a vehicle may typically be an assembly of thousands of parts.

[0041] In the context of CAD, a modeled object can typically be a 3D modeled object. A "3D modeled object" means any object modeled with data that enables its 3D representation. 3D representation allows viewing the object from all angles. For example, a 3D modeled object, when represented in 3D, can be handled and rotated around any of its axes, or around any axis within the screen on which the representation is displayed. This specifically excludes 2D icons that are not 3D modeled.

[0042] The 3D modeled object can represent the shape of a vehicle manufactured in the real world after the completion of the vehicle impact analysis. The vehicle may be a passenger car and / or a commercial vehicle. The vehicle may be a ground vehicle such as an automobile, truck, motorcycle, bus, or train. The vehicle may be an air vehicle such as an aircraft, helicopter, or aerospace vehicle. The vehicle may be a sea vehicle such as a commercial ship, offshore equipment, yacht, or workboat.

[0043] Figure 2 shows an example of the system's GUI, which is a CAD system. In the figure, the 3D modeled object is a brake assembly, not the exterior of a vehicle. However, the figure is simply to illustrate the CAD system and its functionality.

[0044] GUI2100 may be a typical CAD-like interface having standard menu bars 2110, 2120, as well as bottom and side toolbars 2140, 2150. Such menu bars and toolbars include sets of icons that the user can select, each icon being associated with one or more operations or functions as known in the art. Some of these icons are associated with software tools adapted for editing and / or working with 3D modeled objects 2000 displayed in GUI2100. Software tools can be grouped into workbenches. Each workbench contains a subset of software tools. In particular, one of the workbenches is an editing workbench suitable for editing the geometric features of a modeled product 2000. In operation, the designer can, for example, pre-select a portion of the object 2000 and then edit its operation (e.g., change dimensions, color, etc.) or geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is modeling punching or folding of a 3D modeled object displayed on the screen. The GUI can, for example, display data 2500 related to the displayed product 2000. In the example figure, the data 2500, displayed as a "feature tree," and their 3D representation 2000 relate to a brake assembly including brake calipers and discs. The GUI can further display various types of graphic tools 2130, 2070, 2080 to trigger a simulation of the edited product's operation or to render various attributes of the displayed product 2000, for example, to facilitate the 3D orientation of objects. The cursor 2060 can be controlled by a haptic device to allow the user to interact with the graphic tools.

[0045] Figure 3 shows an example of a system where the system is a client computer system, such as a user's workstation.

[0046] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and random access memory (RAM) 1070 also connected to the bus. The client computer further includes a graphical processing unit (GPU) 1110 associated with video random access memory 1100 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass memory devices suitable for tangibly realizing computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices such as EPROMs, EEPROMs, and flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM disks 1040. Any of the above may be supplemented by or incorporated into a specially designed ASIC (Application-Specific Integrated Circuit). A network adapter 1050 manages access to the network 1060. The client computer may also include a cursor control device, a tactile device 1090 such as a keyboard. A cursor control device is used within the client computer to allow the user to selectively position the cursor at any desired location on the 1080-resolution display. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a number of signal generators for inputting control signals into the system. Typically, the cursor control device may be a mouse, and the mouse buttons are used to generate signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.

[0047] A computer program may include instructions that can be executed by a computer, and the instructions include means for causing the apparatus to perform the method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in a digital electronic circuit, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as a product tangibly embodied in an apparatus, for example, a machine-readable storage device for execution by a programmable processor. The steps of the method may be executed by a programmable processor that executes a program of instructions for performing the functions of the method by operating on input data and producing outputs. Thus, the processor is programmable and can be coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to transmit data and instructions to them. The application program may be implemented in a high-level procedural, object-oriented programming language, or functional programming language, or, if necessary, in assembly language or machine code. In any case, the language may be a compiled language or an interpreted language. The program may be a full installation program or an update program. When the program is applied to the system, instructions for performing the method are obtained in any case.

[0048] This method may be incorporated into the manufacturing process, which may include generating a physical vehicle corresponding to the B-Rep after performing this method. Since this method improves the impact analysis of the vehicle, it also improves the vehicle manufacturing process.

[0049] Vehicle impact analysis specifies any analysis of impacts likely to occur on the exterior surface of a vehicle, based on a CAD model of the vehicle. The CAD model here is the B-Rep provided in S10. By determining one or more two-point contact curves in S30, this method already enables such analysis. In fact, the determination step S30 outputs one or more data pieces (i.e., curves) each representing a successive occurrence of two-point contact of a sphere on the B-Rep. These output data can then be used for any vehicle impact analysis purpose.

[0050] A contact sphere is a spherical representation of a human body part, such as the head or knees, that is susceptible to impact from the outer surface of a vehicle. Spherical representations have long been widely used to represent the head and knees because they adequately capture the variability in shape and behavior between humans while allowing for relatively simple calculations. In vehicle impact analysis, they are generally called "contact" spheres because they consider potential contact with the outer surface of the sphere. A contact sphere can represent unprotected or protected human body parts. For example, a contact sphere can represent a helmet worn by a person.

[0051] The term "outer surface" of a vehicle refers to any surface of the vehicle that is susceptible to impact from a contact ball. The outer surface may be the outer surface of the outer part of the vehicle (e.g., the surface of the vehicle's body, or the Class A surface of a car). In such cases, the vehicle may be a ground vehicle (such as a car), and the vehicle impact analysis may be an analysis of impacts likely to occur to pedestrians. Alternatively, the outer surface may be the outer surface of the inner part of the vehicle. In such cases, the vehicle may be any passenger car, and the vehicle impact analysis may be an analysis of impacts likely to occur to passengers.

[0052] This method may, in particular, include displaying graphic representations of one or more two-point contact curves superimposed on, for example, a graphic representation of the exterior surface of a vehicle (e.g., a B-Rep tessellation). Such visualization of one or more two-point contact curves enables vehicle impact analysis.

[0053] Alternatively or additionally, the method may include performing a visual inspection function. The visual inspection function may include displaying a sphere having the radius value provided in S20 and making contact with a graphic representation of its outer surface. The method may then include moving the contact sphere (e.g., by the user or automatically) by, for example, by the user and by using a tactile device (such as a mouse), for example, by dragging the sphere, for example, by sliding the sphere along the graphical representation of its outer surface. Such sliding represents the occurrence of a vehicle-human impact. In particular, the user can slide the sphere along any two-point contact curve determined in S30. In fact, a person impacted by a vehicle is thought to slide freely over a one-point contact area, and once such a curve is filled, they are thought to slide along a two-point contact curve until a three-point contact area is filled. Thanks to the determination step S30, the system can guide the user in such sliding visually by displaying the curvature and / or by locking or semi-locking the sliding along the curvature. During visual inspection, the outer surface and the sphere are always displayed so that the sliding motion of the sphere on the outer surface is shown in real time (the user can see the movement of the sphere).

[0054] Alternatively or additionally, the method may include analyzing the curvature of the surface at points on the outer surface, depending on whether these points belong to the two-point contact curve determined in S30.

[0055] Alternatively or additionally, the method may include performing an impact simulation based on one or more two-point contact curves determined in S30.

[0056] In all cases, this method may include, depending on the results obtained, evaluating whether the vehicle meets safety standards and / or improving the safety of the vehicle by modifying its design.

[0057] The provided step S10 may include the step of retrieving a B-Rep from a previously designed library of B-Reps. Alternatively, the provided step S10 may include the step of designing a B-Rep from scratch or starting from a previous design.

[0058] "Designing a 3D model object" specifies any action or set of actions that are at least part of the process of creating a 3D model object. Thus, this method may include creating a 3D model object from scratch. Alternatively, this method may include the step of providing a previously created 3D model object, and then the step of modifying the 3D model object.

[0059] This method may include, after the determination step S30, design modifications to the B-Rep (by modifying its design) based on the determination step S30 (for example, to improve safety). The design modifications may be carried out directly based on one or more two-point contact curves determined in S30, or based on any post-processing thereon that is part of the vehicle impact analysis. The design modifications may include smoothing the outer surface (i.e., reducing its curvature) at the locations of one or more two-point contact curves determined in S30.

[0060] This method allows for the repetition of steps S10 (providing), S20 (providing), and S30 (determining).

[0061] In each iteration, step S10 may include taking the B-Rep provided in step S10 of the previous iteration and performing a design change. In one or more iterations, the design change may be performed directly based on one or more two-point contact curves determined in S30 of the previous iteration, or based on any post-processing thereof that is part of the vehicle impact analysis. This allows for the refinement of the vehicle's B-Rep representation based on the vehicle impact analysis proposed in this method, thus converging toward an improved design.

[0062] Alternatively or additionally, in each iteration, the radius value provided in S20 may be the same as in the previous iteration, or it may be modified compared to the previous iteration. In the latter case, B-Rep may be the same. This allows for the performance of an improved impact analysis by considering different types of contact spheres. However, this method can be iterated with both the radius and B-Rep modified from one iteration to another.

[0063] The boundary representation (also known as "B-Rep") format and the concepts used by this method are widely known, but will be explained here.

[0064] The B-Rep model includes topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects, i.e., surfaces, planes, curves, lines, and points.

[0065] By definition, a face is a bounded portion of a surface, called a supporting surface. An edge is a bounded portion of a curve, called a supporting curve. A vertex is a point in 3D space. They are related to each other as follows: The boundary portion of a curve is defined by two points (vertices) on the curve. The boundary portion of a surface is defined by its boundary. This boundary is a set of edges of a curve lying on the surface (i.e., parts of the supporting curve). Edges of a face boundary are connected to each other by sharing vertices. Faces are connected to each other by sharing edges. By definition, two faces are adjacent at their edges if they share the aforementioned edges. Similarly, two edges are adjacent if they share vertices.

[0066] Figures 4 and 5 show a B-Rep model of a cylindrical slot made up of three faces: a top plane and two side cylindrical faces. Figure 4 is a perspective view of the slot. Visible faces, edges, and vertices are numbered. Figure 5 is an exploded view of all faces. Duplicate numbers indicate shared edges and vertices. Face 1 is the boundary portion of the plane. The boundary of face 1 includes edges 4 and 5, each of which is bounded by vertices 10 and 11. These edges together have the same supporting circle. Face 2 is bounded by edges 6, 8, 5 and 13, all lying on the infinite cylindrical surface. Faces 1 and 2 are adjacent because they share edge 5. Faces 2 and 3 are adjacent because they share edges 8 and 13. Faces 1 and 3 are adjacent because they share edge 4.

[0067] Figure 6 shows the "boundary-defined" topological relationships of the B-Rep model. The nodes in the upper layers are faces, the nodes in the intermediate layers are edges, and the nodes in the lower layers are vertices.

[0068] Figures 7 and 8 illustrate the relationship between topological entities (faces, edges, vertices) and support shapes (infinite cylinders, infinite planes, infinite lines, circles, points).

[0069] In CAD systems, the B-Rep model collects "boundary" relationships, relationships between topological entities and support shapes, and mathematical descriptions of support shapes within an appropriate data structure.

[0070] In the following, the terms “surface patch” or “patch” may be used in reference to either the surface of a B-Rep or its supporting surface, and the term “surface” itself may refer to either the surface or its supporting surface.

[0071] Given a radius value for the contact sphere (e.g., the value provided in S20), k-point contact is exactly a set of k points (not less) of the B-Rep where the contact sphere is simultaneously and exactly in contact with the outer surface at a set of k points, without intersecting the outer surface in volume. In other words, the intersections of the contact sphere with the outer surface are exactly a set of k points, and the intersections of the contact sphere with the vehicle (i.e., the interior of the B-Rep as demarcated by the outer surface) are null / zero volumes. The contact sphere is sometimes called a "k-point contact sphere" in this context.

[0072] The determination S30 outputs one or more two-point contact curves of B-Rep for the radius value. Each two-point contact curve is a curve lying on B-Rep and represents a sequence of two-point contacts between the outer surface and the two-point contact sphere having the radius value. Each two-point contact curve may be continuous.

[0073] Each two-point contact curve can represent a set (e.g., continuous) sequence of points where a two-point contact sphere with radius values ​​contacts the outer surface. In such cases, B-Rep is defined in 3D, and each two-point contact curve is,

number

number

number

[0074] Based on the information described above, the method may include calculating the trajectory of a two-point contact sphere corresponding to each two-point contact curve. If each two-point contact curve represents a sequence of points where a two-point contact sphere having a radius value contacts the outer surface, the method may further calculate the midpoint of the sequence of points, such midpoint describing the center of the two-point sphere. The curve of such midpoint then represents the trajectory of the center of the two-point sphere. Since the radius is provided in S30, the visual inspection function mentioned above may therefore be based on the output of the judgment step S30. The visual inspection function may, in particular, include displaying a sphere having a radius value centered at the midpoint provided and calculated in S20. By configuration, such a sphere is displayed so as to contact the graphic representation of the outer surface with respect to the two-point contact curve.

[0075] Each two-point contact curve can be represented by a polygon. Each vertex of the polygon may be a pair of points. This allows for efficient representation of two-point contact curves and efficient determination in S30. The midpoint of a pair of points forms a polygon itself, which represents the trajectory of the center of the two-point sphere. R^3

[0076] Next, a first aspect of this method will be described.

[0077] According to the first embodiment, the determination step S30 includes solving the corresponding differential equation based on B-Rep for the corresponding two-point contact curves. In such a case, in S30, each two-point contact curve is determined in the differentiable portion of B-Rep. In the example, B-Rep may be distinguishable everywhere. In any case, the method may include determining all two-point contact curves in the differentiable portion of B-Rep for radius values. This enables a thorough vehicle impact analysis.

[0078] As already mentioned, each face of the B-Rep is supported by its respective surface parameterization. In such cases, the corresponding differential equation solved in S30 may be based on the corresponding pair of surface parameterizations (i.e., those supporting two-point contact). Thus, the decision step S30 fully utilizes the continuous and accurate geometric representation conveyed by the B-Rep, thereby yielding accurate results.

[0079] Each pair of surface parameterizations corresponds to a pair of faces that may be different or identical. In the latter case, note that two-point contact can occur between two different parts of a B-Rep belonging to a single and identical face of a sphere with a radius value (for example, if the face is sufficiently curved).

[0080] Each differential equation may also be as follows:

number

[0081] DF is the system function provided by the following for parameter t (i.e., the variable that parameterizes the differential / Jacobian under consideration):

number

number

[0082] {s1,s2} are the respective pairs of surface parameterizations (where S1 and S2 may be equal if the contact occurs within a single plane). N1 and N2 are the respective normal maps of s1 and s2 (and thus the normal maps of the surfaces parameterized by s1 and s2). (u,v) and (a,b) are the respective parameter pairs of s1 and s2. R is the radius value provided in S20. Finally,

number

[0083] This system function is a set of points in B-Rep.

number

[0084] Now, solving the corresponding differential equation may involve integrating the corresponding differential equation from its initial values. This integration allows for a robust solution. This method allows the integration to be performed according to any known method. The integration is sometimes called "tracing" because it traces a two-point contact curve. An example of tracing will later be called T1.

[0085] For example, this method can perform numerical integration. Specifically, the integration may involve a series of numerical integration steps, each producing a segment portion of the respective two-point contact curve. This allows for robust integration. This method can, in particular, implement the Runge-Kutta method.

[0086] This method allows for the execution of a series of numerical integration steps until one of two conditions is met: (I) the contact sphere intersects with the remainder of the B-Rep, or (II) the plane boundary is reached. This allows for stopping the integration at an appropriate time.

[0087] In the case of condition (I), "the remainder of B-Rep" refers to the two contacts (i.e., obtained by integration at each step).

number

number

[0088] In the case of condition (II), the integral no longer yields a result located on a surface if the numerical integration step is continued. Thus, the termination of the integral under condition (II) yields the end of the two-point contact curve, which is the two-point contact position. The boundary of the surface is the boundary of a B-Rep (and therefore an open B-Rep), in which case the end of the integral corresponds to the end of the curve, or the boundary of the surface is also the boundary of another adjacent surface, in which case the two-point contact curve is truncated but can be connected to another two-point contact curve similarly determined for the said adjacent surface.

[0089] The solution to each differential equation may include, for example, a step (I) of testing the intersection of the contact sphere and the remaining B-Rep at each current integration step, and a step (condition (I)) of stopping the integration if the test is positive. Solving may further include (II) testing whether the surface boundary has been reached, and stopping the integration if the test is positive (condition (II)). Performing this second test (II) can be adjusted to the first test (I) which was negative (i.e., if the first test was positive, the second test is not necessary).

[0090] In the case of condition (I), the method can discard (and optionally replace) or alternatively and equivalently truncate segment portions corresponding to the number of the last numerical integration steps. The substitution or truncation may be such that the resulting curve terminates precisely at the three-point contact locations. The number of segment portions may be a floating-point number, i.e., the steps and / or fractions of the steps must be truncated. In such cases, the method may further include outputting the positions of the three-point contact points of the B-Rep relative to the radius values, and / or displaying a graphical representation of such three-point contact points (e.g., in addition to displaying one or more two-point contact curves). As shown in the examples presented later, the determination of the number of steps to replace can be done by other differential equation solving methods that place a 3pt contact sphere (e.g., a second tracing block T2). In the case of condition (II), the method can optionally bisect the segment portions to the last numerical integration steps, for example, so that they terminate precisely at the surface boundary. If a second test is performed regardless of whether the first test is positive, and the second test is positive, then condition (I) may be dominant.

[0091] The test for condition (I) may include crossing a local sphere having a radius R of the order of R but smaller than that of B-Rep with the tessellation. The local sphere may have a radius greater than 0.9*R or 0.95*R, for example, equal to 0.99*R. The local sphere may have the same center as the contact sphere (i.e., the midpoint of the two-point contact curve). If the crossing has a non-null volume, the method can evaluate whether condition (I) is satisfied. By crossing a sphere with the tessellation of B-Rep, the test for condition (I) can be performed relatively quickly. However, the tessellation introduces a discretization error in the exact shape of the outer surface of B-Rep. This error corresponds to the mosaic resolution. By testing the crossing of a local sphere having a radius smaller than the radius value of the contact sphere, the test reduces the probability of obtaining a false positive result and therefore improperly halts the integration.

[0092] If condition (I) is met that the contact sphere intersects the rest of B-Rep, the determining step S30 may further include the step of solving a separate differential equation based on B-Rep. As previously mentioned, this can be replaced by truncating the segment portion corresponding to the final numerical integration step. This other pair of corresponding differential equations may be based on the same pair of corresponding surface parameterizations {s1, s2}, or on another surface parameterization expressed as s3, which supports the intersection. Parameterization s3 is one of the surfaces supporting the surface containing the third portion (the surface where the intersection occurs). This third surface may be the same as the surface supported by s1, and / or the same as the surface supported by s2, or it may be a different surface of B-Rep. In the former case, note that for a sphere with a radius value, three-point contact may occur between three different portions of B-Rep belonging to the same single surface of B-Rep (for example, if the surface is sufficiently curved). By solving the other corresponding differential equations, the final segment can be refined to obtain the numerically accurate position of the three-point contact (meaning numerical tolerance, i.e., precision to the corresponding floating-point units).

[0093] Regarding the initial solution method, the solution method for the other corresponding differential equations may involve integrating the corresponding differential equations from their initial values. Each of the other differential equations may have a common solution with the initial differential equation at the end of the previous numerical step (the very last step in the case of truncation, or an earlier step in the case of substitution). This common solution may rely on initializing the numerical integral of each of the other differential equations. Thus, the end of the curve at the last numerical integration step becomes part of the initial values ​​of the integral of each of the other differential equations.

[0094] The solutions to each of the other differential equations also trace the curve (the final part of the two-point contact curve in the case of substitution, or the part of the two-point contact curve that should be eliminated in the case of truncation), and are therefore sometimes called "tracing." An example of tracing will later be called T2. Also, with respect to the initial integral, the integration of the other differential equations may include a series of numerical integration steps, each producing its respective segment of the two-point contact curve. Finally, this method may include bisecting each of the last segments so as to terminate precisely at the three-point contact position.

[0095] As shown below, the first differential equation is:

number

number

[0096] The other differential equations may also be as follows:

number

number

number

[0097] s3 is the other surface parameterization (where s3 may be equal to s1 and / or s2 if three-point contact occurs on only two faces or even within a single face). N3 is the normal map of each of s3 (and thus the normal map of the faces parameterized by s3). (c,d) are the respective parameter pairs of s3. l is the length of the orthogonal projection of the center of a sphere of radius R that is in contact with s1(u,v) and s2(a,b). The orthogonal projection may lie on the other surface s3. Finally,

number

[0098] This system function is a set of three points

number

[0099] In particular, in the case of a method that discards a portion of the initially calculated trajectory, the step S30 to determine is l(t * The method may include a step of evaluating whether l is higher than R at each numerical integration step, and a step of continuing the integration as long as the test is negative. When l is greater than R, it means that three-point contact has occurred. In such a case, the method can bisect the last segment portion to stop the curve precisely at the three-point contact position. The tip of the bisected segment portion may be output as the three-point contact position. If this method replaces the last segment, the principle is the same, but the decision step S30 can continue the integration as long as the test is positive.

[0100] Each differential equation

number

number

number

[0101] Zero discovery can be performed in any way. For example, zero discovery may include a root-finding algorithm on a B-Rep from a pair of starting points of the B-Rep. This provides robustness to the method. In particular, the root-finding algorithm may be a Newtonian iteration.

[0102] The determination step S30 can set the starting point pair of the root discovery algorithm in any way. For example, the determination step S30 may include a step of tessellating the B-Rep and a step of processing the tessellation. The tessellation (i.e., the result of the tessellation) may be of any type of mesh depending on the tessellation algorithm being performed.

[0103] This process involves identifying one-point contact vertices and non-contact vertices for a radius value R. In other words, the method here performs global discrete HID, which can be done in any way, including prior art. For example, the identification step may involve touching each vertex of the tessellation with a contact sphere of radius equal to R in a direction perpendicular to the mesh and outward from the mesh (representing the outer surface). This method may optionally include determining the normal direction, for example, as a means of the normal vectors of all faces adjacent to the touched vertex of the mesh. The identification step may then include evaluating whether the contact sphere intersects with other parts of the mesh that have non-null volumes. If there is a non-null intersection, the vertex is a non-contact vertex (because the intersection prevents the sphere from contacting the vertex by collision). Otherwise, if the intersection is a null volume, the vertex is a one-point contact vertex. The global discrete HID can optionally perform other operations, such as marking single-point contact vertices as critical or non-critical vertices depending on the curvature of the outer surface at the vertex, and / or modifying the mesh around such critical vertices.

[0104] Next, this process includes the step of defining transition edges. Each defined transition edge is an edge bounded by each one-point contact vertex and each non-contact vertex. In the example, all edges of the mesh bounded by each one-point contact vertex and each non-contact vertex can be defined as transition edges.

[0105] Next, the determination step S30 may include setting up pairs of starting points for a root-finding algorithm based on each transition edge. The transition edges correspond to regions of B-Rep where two-point contact is likely to occur. Thus, the location of each transition edge can be a good starting point for finding zero of F and then integrating the differential equation from there.

[0106] When tessellating a B-Rep, each tile (i.e., mesh face) of the mesh corresponds to a part of the B-Rep, and the tessellation algorithm can continue to trace such correspondences. In other words, the tessellation algorithm can output information to define a bijection between the positions of the B-Rep faces and the positions on the mesh, each point in the B-Rep can be interpreted as a unique position in the mesh, and conversely, each position in the mesh can be interpreted as a unique point in the B-Rep.

[0107] Setting a set of starting points for a root-finding algorithm may include a scheme that is iterated through until the root-finding algorithm finds zero. The iterative scheme may include selecting transition edges. Transition edges are surface parameterized.

number

[0108] Next, a second aspect of this method will be described.

[0109] According to the second embodiment, the determination step S30 includes a two-point contact curve calculation algorithm for each of the multiple sub-pairs of B-Rep. The calculation algorithm is based on each pair of sub-pairs. The calculation algorithm is then parallelized across the multiple pairs of sub-pairs.

[0110] A "two-point contact curve calculation algorithm" refers to an algorithm that attempts to calculate all two-point contact curves for each pair of parts (if any), with each pair of parts provided as input to the algorithm. For input pairs of parts, the calculation algorithm can sufficiently output a null result by, for example, simply determining that no two-point contact curves exist between the input pairs of parts.

[0111] A “pair of parts” in B-Rep refers to a predetermined set of pairs of parts of B-Rep, which is a set of exactly two parts (or parts) of B-Rep. The two parts in a pair may be different or identical. In the latter case, it should be noted that for a sphere with radius R, two-point contact can occur within a single, identical part of B-Rep (for example, if the part is sufficiently curved).

[0112] Here, the computation algorithm is parallelized across the multiple pairs of parts. This means that this method involves invoking multiple parallel threads of the same computation algorithm, with each thread receiving each pair of parts as input. Such parallelization can be performed by any hardware configured for parallel processing, such as a massively parallel processor (MPP) or a graphics card (GPU).

[0113] Each part of each subpair among the multiple subpairs may be each face of the B-Rep. In other words, the multiple subpairs are multiple faces of the B-Rep. To put it another way, the determination step S30 includes, for each pair of faces in the multiple subpairs, a two-point contact curve calculation algorithm based on each pair of faces, and the calculation algorithms are parallelized across the multiple subpairs.

[0114] Multiple subpairs may consist (exactly) of all pairs of subpairs of the B-Rep that form a partition of the B-Rep. The partition of the B-Rep under consideration may simply be a set of faces of the B-Rep, and the computation algorithm may be parallelized across all sets of faces of the B-Rep (including two sets of the same face). This provides a good trade-off between the time gain provided by computations performed concurrently during parallelization and the time loss due to thread decoupling, waiting, and recoupling. This has proven to be the most efficient partition for the purpose of vehicle impact analysis based on B-Reps of vehicles.

[0115] As in the first embodiment, the determining step S30 may include the steps of tessellating the B-Rep and processing the tessellation. The tessellation (i.e., the result of the tessellation) may be of any type of mesh depending on the tessellation algorithm being performed.

[0116] In such cases, the process involves identifying one-point contact vertices and non-contact vertices for a radius value R. In other words, the method here performs global discrete HID, which can be done in any way including prior art. For example, identification may involve contacting each vertex of the tessellation with a contact sphere of radius R, perpendicular to the mesh at the vertex and in a direction outward from the mesh (representing the outer surface). This method may optionally involve determining the normal direction, for example, as a means of the normal vectors of all faces adjacent to the touched vertex of the mesh. Identification may then involve evaluating whether the contact sphere intersects with other parts of the mesh that have non-null volumes. If there is a non-null intersection, the vertex is a non-contact vertex (because the intersection prevents the sphere from contacting the vertex by collision). Otherwise, if the intersection is a null volume, the vertex is a one-point contact vertex. The global discrete HID can optionally perform other operations, such as marking single-point contact vertices as critical or non-critical vertices depending on the curvature of the outer surface at the vertex, and / or modifying the mesh around such critical vertices.

[0117] Next, this process involves defining transition edges. Each defined transition edge is an edge bounded by each one-point contact vertex and each non-contact vertex. In the example, all edges of the mesh bounded by each one-point contact vertex and each non-contact vertex can be defined as transition edges.

[0118] Furthermore, in such cases, the computation algorithm takes as input each pair of transition edges of each pair of parts (e.g., faces) for each pair of parts. Each pair of transition edges can consist of all transition edges of each pair of parts (e.g., faces), or its subparts. This improves the speed of the algorithm. The subpart may consist of all transition edges detected as easily leading to a two-point contact curve. An example of such detection is shown below. If no such transition edges are detected, or if there are no transition edges at all, the computation algorithm has no input and can therefore simply output a null result for each pair.

[0119] If the determination step S30 includes the steps of tessellating the B-Rep and processing the tessellation, the tessellation may be parallelized across sets of parts (e.g., sets of faces). This increases the speed of the method because different parts of the B-Rep (e.g., faces) can be tessellated separately in safe threads. In such cases, the processing and calculation algorithms may be executed after the tessellation is complete. This allows a fixed mesh to be obtained before processing, and prevents conflicts between processing and mesh construction. This increases thread safety.

[0120] If the determination step S30 includes the steps of tessellating the B-Rep and processing the tessellation, the processing may be parallelized across sets of parts (e.g., sets of faces). This increases the speed of the method because different mosaic parts (e.g., faces) of the B-Rep can be processed separately in safe threads. In such cases, the computation algorithm may be executed after the processing is complete. This makes it possible to obtain a fixed mesh before executing the computation algorithm. This increases thread safety.

[0121] If the determination step S30 includes the steps of tessellating the B-Rep and processing the tessellation, then for each pair of parts (e.g., faces), the computing algorithm may include an iterative scheme that is repeated until each set of transition edges is empty. The iterative scheme includes selecting transition edges from each set of transition edges (input into the two-point contact curve calculation algorithm). The iterative scheme also includes attempting to trace the two-point contact curve based on the selected transition edges. If the attempt to trace is successful, the iterative scheme includes removing all transition edges that intersect the traced two-point contact curve from each set of transition edges. This reduces the risk of tracing the same two-point contact curve twice. If the attempt to trace is unsuccessful, nothing is traced and therefore nothing happens. The iterative scheme further includes removing the selected transition edges from each set of transition edges. This ensures the final termination of the iteration, which reduces the risk of tracing the same curve twice and therefore improves efficiency.

[0122] The determination step S30 may include a step of attempting to establish one or more pairs of candidate starting points. Each candidate starting point belongs to each part of each pair of parts (e.g., faces). In other words, the determination step S30 searches for candidate pairs of starting points within the pair of parts considered, with one candidate starting point for each part. Furthermore, the establishment is attempted for each pair of candidate starting points based on each transition edge of each pair of parts (and thus belonging to one of the two parts of the pair), and the attempt to establish can loop over all transition edges (e.g., faces) of each pair of parts, and the loop itself can be in a more global loop over all transition edges of the tessellation. This provides comprehensiveness. The attempt to establish can be parallelized over multiple pairs of parts or over sets of parts. Both options increase the speed of the determination step S30.

[0123] Each set of transition edges input into the computation algorithm can be populated based on the results of the establishment trial. Specifically, the decision step S30 can add each transition edge that makes the establishment trial successful to each set of transition edges. Each set may initially be empty and eventually filled with all such added transition edges.

[0124] Therefore, if the establishment attempt is unsuccessful (i.e., if no pair of candidate starting points is established), the decision step S30 can stop for each pair of parts (e.g., faces), and thus the computation algorithm can simply output a null result for each pair, since the computation algorithm has a null input.

[0125] Conversely, if the establishment attempt is successful for each pair of parts (e.g., faces), the computation algorithm may be executed as follows:

[0126] The selected transition edge is, by definition, each transition edge in each set of transition edges input to the computation algorithm, and therefore, the determination step S30 was successful in establishing each pair of candidate starting points based on each transition edge.

[0127] In such cases, the tracing attempt involves starting from each pair of candidate starting points and attempting to find each starting point belonging to the two-point contact curve. If the discovery attempt is successful, the tracing attempt involves tracing the two-point contact curve from the initial points and is therefore successful. Otherwise, if the search attempt fails, the tracing attempt also fails. In such cases, the scheme proceeds to the next iteration, where the computer algorithm selects another transition edge from each pair of transition edges and retries the trace. This is repeated until each pair of transition edges is empty. If all tracing attempts fail, the computational algorithm may simply output a null result for the corresponding pair.

[0128] Similar to the first aspect of this method, the trace (if successful) may involve integrating the corresponding differential equation. In such a case, as in the first aspect of this method, the differential equation is based on a pair of surface parameterizations of the corresponding pair of parts. The differential equation is the same as in the first aspect of the method, i.e.,

number

number

number

[0129] As in the first aspect of the method, zero discovery may be performed in any manner. For example, zero discovery may include a root-finding algorithm on a B-Rep from a pair of candidate starting points of the B-Rep established (if the establishment attempt is successful). This provides robustness to the method. In particular, the root-finding algorithm may be a Newtonian iteration.

[0130] As in the first aspect of the method, establishing an attempt may involve establishing a pair of first points as points on the B-Rep corresponding to a first position on each transition edge (any position between the two vertices of each transition edge, and optionally, but not limited to, one of these vertices), and attempting to establish a pair of second points as other points on the B-Rep that are candidates to substantially form a pair of two-point contacts with the first points. This may involve, for example, bisecting each transition edge. An example will be provided later. The attempt to find then may consist of attempting to find zero in F by running a root-finding algorithm on the B-Rep from the pair of candidate starting points.

[0131] Next, embodiments of this method will be described with reference to Figures 9 to 50, some of which are actual screenshots of prototype software tested in accordance with the above embodiments.

[0132] Figures 9-10 show examples of input B-Rep geometry that may be provided in S10. The illustrated B-Rep represents the outer surface of the outer portion of the car in a specific half of the car body. The following discussion refers to this embodiment unless otherwise specified.

[0133] In the discussed implementation, decision step S30 includes tessellating the B-Rep and processing the tessellation. This processing includes identifying one-point contact vertices and non-contact vertices for radius values. This identification may be performed according to any known global head impact diagnosis (HID). The implementation has been tested with a global HID provided by Dassault Systèmes' ICEM Surf, which acts only on the tessellation of the input B-Rep geometry, hence it is called "discrete". Thus, the discussed implementation and the tested prototype are based on this existing global and individual HID functionality.

[0134] Global and individual HID functions can include only one choice by the user and are therefore easy to use. However, the accuracy of the results depends on the discretization accuracy, i.e., the mesh accuracy. This can be arbitrarily refined via tolerance and length parameters, respectively, so that runtime complexity is quadratically scaled in these parameters. Therefore, the existing functions are acceptable for determining one-point contact vertices (as done by global and discrete HID functions), but are not very suitable for determining two-point contact curves and isolated three-point contact spheres in S30 (this is when a provided method intervenes and is added to the existing functions).

[0135] Figures 11-12 show the discrete HID results on the input B-Rep, with Figure 12 showing a vertex direction (zoomed in) visualization of the results in Figure 11. As can be seen from the figures, relatively high accuracy can be obtained with a length of 5 millimeters. The length parameter can generally be adjusted to suit the specific example at hand. In this case, a very short length, i.e., length = 5 millimeters, is used, which can generally be a good value for obtaining very accurate results. The area marked in green 112 is the vertex, the so-called active vertex, and each one-point contact sphere does not intersect with the input geometry except for its connection point (i.e., one-point contact vertex). All other vertices 114 are called inactive and are marked in blue (i.e., non-contact vertices). This algorithm works per vertex (see Figure 12), and using standard shading, this method can obtain the results in Figure 11.

[0136] Referring to Figures 13-14, in order to understand and control the results of the algorithm, the user has the option to perform a so-called visual inspection function (or "inspection"), where the user selects vertices, and as a result, the respective one-point (half / half) contact spheres 130 and 140 are visualized: the green sphere 130 is active and the blue sphere 140 is inactive. In Figure 13, the active vertex is selected so that the one-point contact sphere 130 does not intersect with the rest of the shape, and in Figure 14, the inactive vertex is selected so that the one-point contact sphere 140 intersects with it. In Figure 14, the blue sphere 140 clearly intersects with the rest of the geometric shape, which is also shown by visualization via the yellow marker 142.

[0137] Referring to Figure 15, which shows a close-up of the front light section in Figures 11-12, having several critical regions, the functionality of the discrete HID conventional technology is tuned to address curvature limitations for certain areas externally (primarily the front of the car) and internally (primarily the dashboard), and is associated with a single-point contact sphere mounted at a point in each region. The critical regions with respect to this part of the specification may be marked in red by the individual HIDs. These are marked regions 150 that have a critical curvature for the single-point contact sphere.

[0138] however, • Discrete HID considers only one-point contact balls. Furthermore, the accuracy of the results depends on the mesh parameters and is essentially only an approximation to the results using continuous B-Rep input geometry. Referring to Figures 19-20, this can be best identified in the transition from green region 112 to blue region 114, where the mesh dependency of the results is clearly visible. While approximations of these transitions are visible, there is no possibility of inspecting two-point or three-point contact spheres. This is due to the fact that, because the algorithm operates vertex-wise, even though there are points on edges corresponding to 2PCS, these points are not computed on transition edges (edges in a mesh with one active vertex and one inactive vertex), are not represented in the resulting data model, and are therefore inaccessible for user inspection. A one-point contact sphere models the first point of impact, but depending on the angle at which the impact occurs, the head or knees of the accident victim typically slide along the surface of the vehicle until a configuration occurs where a second point of contact arises, corresponding to a two-point contact sphere in the static geometric model. At this point, the applied force is more severe than in the case of a one-point contact. However, there is still one degree of freedom, namely, the head / knees (again, depending on the impact angle) typically slide along the curve of the two-point contact sphere until a third point of contact appears. The latter corresponds to a three-point contact sphere, which is the final configuration where not all forces of impact load the accident victim. Thus, the two-point and three-point contact spheres are geometric configurations and are useful for accident analysis and simulation.

[0139] Referring to Figures 16-18, which show drawings extracted from ECE R-26 illustrating an example of specifications related to two-point contact balls, the aforementioned specifications (as defined, for example, in EU and US regulations) further impose restrictions on curvature criteria in a much more limited area related to the contact points of two-point and three-point contact balls.

[0140] The inspection process to ensure compliance with new vehicle specifications is a comprehensive process, and it may rather be incorporated into the design process at multiple stages. This avoids the pitfall of starting with the initial design and providing a design draft that cannot be brought into compliance with safety regulations at later stages of the design and manufacturing process. In the intermediate stages of the design process, there are typically multiple cycles of small to medium-sized redesigns, as the initial design proposal now must meet several additional boundary conditions, which are derived from the engineering of the vehicle from a technical standpoint. In the later stages, when a fully functional prototype is available, there is finally a control process in which local authorities check the prototype to ensure compliance with safety regulations, particularly pedestrian and passenger safety.

[0141] The latter focuses on critical parts of the human body and, in order to estimate the impact on the head or knees of a pedestrian or passenger during an accident, each specification uses a static geometric configuration that considers a sphere (as a model of the head or knee) when the sphere collides with the outside or inside of a vehicle. These, in turn geometrically, refer to so-called contact spheres that can be calculated for a given geometric shape (the vehicle in this example). A common geometric situation for a surface input shape is that there are 2D, 1D, and zero-dimensional sets of 1-point, 2-point, and 3-point contact spheres, respectively. The first technical problem addressed by the implementation of this method is their calculation. The second technical challenge is how to effectively integrate it into the compliance process that automotive companies must ensure with each vehicle development. The implementation of this method proposes interactive inspection functions for 2-point and 3-point contact spheres, and their respective visualizations that can be performed in real time after the geometric contact sphere problem has been solved.

[0142] The implementation of this method consists of several parts that facilitate the safety compliance process, and at its core begins with the calculation of all relevant two-point and three-point contact spheres. However, the operator is actually far more general. This is essentially an intersection operator for offset surfaces. For example, it can be easily adapted to produce a surface-to-surface intersection result (by setting the input surface offset to zero).

[0143] Furthermore, the inspection function of this method enables designers and engineers involved in the vehicle development process, as well as inspectors from their respective authorities, to analyze critical configurations related to geometric situations represented by two-point and three-point contact spheres. These inspection functions can typically be achieved through a complex manual process that involves the manual construction of such geometric configurations bit by bit. This not only requires the working hours of designated specialists but also interrupts the development process at multiple points.

[0144] The first feature of this method is an algorithm for calculating the curve of a two-point contact sphere, relying on numerical methods related to ordinary differential equations, which traces a set of zeros describing the derivatives of the local two-point contact sphere and its orthogonal projection. A complex intersection algorithm can be used to globalize this result at each step of the numerical integration process, which constructs a bounding box hierarchy of the input geometry and solves the intersection problem between a given sphere and the input geometry with logarithmic complexity. This solves the technical problem of calculating all two-point and three-point contact spheres (that are in contact at differentiable points of the input geometry).

[0145] A second feature of the embodiment of this method is provided by individual inspection functions that allow the user to interactively examine the calculated contact spheres in real time. This includes, in particular, the possibility of selecting a two-point contact sphere and moving it in real time along the input geometric shape. The latter is accompanied by visualizations that allow the user to control the accuracy of the calculation results and subtract important means to ensure compliance with safety specifications. This solves the technical problem of designing an efficient process for integrating compliance processes into typical design and engineering processes for the development of new vehicles, such as those implemented by automotive companies in Europe, the United States, and Asia.

[0146] Referring to Figures 19-20, the continuous HID provided by this method offers higher accuracy compared to existing discrete HID. This is due to the fact that all calculations based on the new approach rely on continuous input geometry rather than discretization. This enables calculations that are accurate even to the numerical tolerances of B-Rep used in the input descriptions and floating-point units of modern CPUs.

[0147] Figures 19-20 show a comparison between discrete HID and continuous HID, where the two are superimposed. Discrete HID generates blue regions 114 and green regions 112, and its transition 190 roughly describes the contact lines of a two-point contact sphere. They are neither precise nor accessible for inspection. Continuous HID is not only precise with respect to numerical tolerances, but also selectable and provides yellow contact lines 192 that allow for thorough inspection.

[0148] As shown in Figures 21-22, the nature of the results of continuous HID makes it possible to examine two-point and three-point contact spheres, which is not possible in a discrete context, since their entities are not simply computed by a discrete approach. Figures 21-22 show examples of two-point and three-point contact sphere examinations with their respective scales visualized. These visualizations are all geometric entities related to the contact sphere being examined, i.e., the sphere itself (visualized as a hemisphere or hemisphere), the contact points, and the associated distances. Furthermore, the examination function of continuous HID allows the midpoint of a two-point examination sphere to be dragged along its associated midpoint curve.

[0149] The implemented form of the global contact sphere algorithm (i.e., part of the determination step S30, also called the "continuous HID algorithm") uses the results of a normal head impact diagnosis for its starting value calculation and to quickly find possible face pairs (where potential two-point contact spheres can be placed). Therefore, more accurate results from a normal head impact diagnosis produce better global contact sphere results. This is a trade-off between accuracy and performance.

[0150] Next, we will describe the implementation of the continuous HID algorithm. This discussion will provide a step-by-step explanation through each flowchart.

[0151] Referring to Figure 23, this is illustrated by giving the result between the contact sphere algorithm applied to a very simple input geometry, which will be referred to below as a “corner”. The latter is sometimes visualized as a mesh to facilitate the explanation of the parts of the algorithm that incorporate meshes. Figure 23 shows a corner consisting of three B-Rep surfaces as a simple input geometry.

[0152] Referring to Figure 24, the top-level flow of the contact ball algorithm consists of five steps.

[0153] Figures 25 and 26 show flowcharts of the surface pretreatment (Steps 1 and 2) and the results after Step 2, respectively, for a simple example.

[0154] Referring to Figure 25, steps 1 and 2 are pre-processes, step 1 is the one-point contact discrete HID of ICEM Surf, and step 2 is the extraction of transition edges. In step 1, the input provided by a single selection by the user is used to construct a bounding box hierarchy, and then used by the intersection operator, which first performs an intersection test of one-point contact spheres attached to each vertex in the mesh having the entire discretized input geometry. The constructed intersection operator is also used in later steps of the algorithm to perform an intersection test of any sphere with the input geometry in logarithmic complexity. This is done in logarithmic complexity.

[0155] Referring to Figure 26, the result is a mesh, where each vertex is tagged as active if it does not intersect with the input geometry (i.e., a one-point contact vertex), or inactive (i.e., a non-contact vertex) otherwise. In step 2, the algorithm extracts pairs of transition edges from the result of step 1, where two vertices are tagged differently.

[0156] Figures 27 and 28 show flowcharts, respectively, for the approximation of the touch points of a two-point contact sphere (Step 3) and simple examples of the results. After Step 2, each transition edge forms one good candidate for the contact points of the two-point contact sphere. The associated second touch point for each transition edge is approximated in Step 3 (see Figure 27). In this step, for each transition edge, a bisection is first performed on the edge with the help of the previously constructed intersection operator, thereby obtaining a reasonable good approximation for the first contact point of the desired two-point contact sphere. In this process, the intersection operator generates good candidates for the second contact point. The result of Step 3 is a reasonable approximation for a pair of touching points for each transition edge, as shown in Figure 28.

[0157] Figure 29 shows the flowchart for the tracing process (step 4). In step 4, for each pair of approximated contact points, a zero-finding or root-finding algorithm (e.g., Newton's method) is performed to obtain true zeros (up to numerical tolerance) of the underlying system function. This is then used as a starting point for numerically integrating the normal ODE system, which is obtained by applying the implicit function theorem to the system function. The resulting trajectory contains all the information needed to extract the two contact curves and midpoint curves of a one-dimensional family of two-point contact spheres. However, to obtain a global result at all steps, the intersection operator constructed earlier is used to check the intersection of the input geometry and a slightly modified version (smaller radius, same midpoint) of the current contact sphere. Numerical integration (e.g., using the Runge-Kutta method) stops as soon as the intersection operator detects an intersection. At this stopping point, the intersection operator provides reasonable candidate vertices of the collision surface mesh, which are used as the starting point for a Newton iteration that provides an orthogonal projection of the sphere's midpoint onto the collision surface.

[0158] Figure 30 shows the result of performing this trace step without discarding the last segment.

[0159] Referring to Figure 31, to perform such truncation, the algorithm can then be traced backward from the stopping point of the previous integration process using an extended ODE system that additionally describes infinitesimal variations in the constructed orthogonal projection. Here, as soon as the length of the orthogonal projection becomes greater than the original radius of our contact sphere, the backward integration stops. This is then nicely bisected to yield high accuracy.

[0160] As shown in Figure 31, this not only provides a numerically accurate stopping point for the curve of a two-point contact ball, but also works for a three-point contact ball.

[0161] Everything is drawn in step 5, with the contact curve 314 drawn in yellow and the related curve 312 at the midpoint drawn in red.

[0162] Next, we will explain Figures 32A and 32B.

[0163] Figure 32A shows the overall implementation of continuous HID. The following discussion, with reference to the next figure, provides specifications regarding the respective system functions, their associated ODEs, some explanations of the dichotomy, and notation conventions.

[0164] Figure 32A shows a flowchart of the global contact sphere algorithm S340, followed by Display S40. Algorithm S340 can form part of the decision step S30, which can be performed after the B-Rep tessellation and tessellation processing has been performed as described above. The processing can identify one-point contact vertices and non-contact vertices for radius values. The processing can have defined transition edges, each transition edge bounded by its respective one-point contact vertex and its respective non-contact vertex.

[0165] Therefore, algorithm S340 may be input with an initial input E which is a container of all transition edges obtained from a discrete HID algorithm.

[0166] This algorithm operates within a loop and first tests whether all transition edges e in E have been processed (S420). If the answer is Yes, the algorithm terminates, and in S40, the method can display a graphical visualization for user visualization of all two-point contact curves previously traced by the algorithm and all three-point contact points previously found by the algorithm (at the ends of the curves). If the answer is No, the algorithm performs a normal iteration by rather executing S342.

[0167] S342 is a process S3422-3430 that establishes each pair {p,q} of candidate start (contact) points of B-Rep based on each transition edge e of E.

[0168] In S3422, the algorithm performed bisection on the remaining transition edge e to obtain a point p' on e, interpreted p' as a point p=p(u,v) on B-Rep, and focused on G. Here, p is a good candidate for the contact point of the two-point contact sphere.

[0169] In S3424, the algorithm attaches a sphere S with radius R (provided earlier in S20) p, and identifies the midpoint (i.e., center) of S as point m. Sphere S is a contact sphere.

[0170] In S3426, the algorithm intersects S with the B-Rep tessellation T. The algorithm then collects the vertices v of T that intersect S (i.e., are contained within the sphere) and are closest to m.

[0171] In S3428, the algorithm interprets v as a point q=q(a,b) on B-RepG, where p and q are good candidates for the two contact points of a two-point contact sphere.

[0172] In S3430, the algorithm attaches p=p(u,v) and q=q(a,b) to e, and stores the triplet (e,p,q) in container D (initially empty).

[0173] This completes the current iteration of process S342, and the algorithm then executes the two-point contact curve calculation algorithm S346.

[0174] In S3462, the algorithm selects a transition edge (i.e., within the triplet) from D, uses the attached parameters (u,v,a,b) from the triplet as initial guesses, and performs Newton iterations on B-Rep based on these guesses, i.e., from pairs of candidate starting points p and q (as discussed earlier and illustrated later). Here, the algorithm attempts to trace the two-point contact curve based on the selected transition edge e by attempting to find each initial point belonging to the two-point contact curve from each pair of candidate starting points p and q.

[0175] In S3464, the algorithm tests whether the discovery attempt was successful. If so, the algorithm proceeds to S3466 and begins tracing the two-point contact curve from each initial point found by the Newton iteration. In this case, thanks to the later steps of the algorithm, the algorithm succeeds in robustly tracing the two-point contact curve. Otherwise, the algorithm returns to S3420 and tries again with a new transition edge.

[0176] In S3466, the algorithm sets the initial / starting value to zero, which is found by Newton iterations, for numerically integrating each of the ordinary differential equations describing the behavior of the two-point contact sphere (as discussed earlier and illustrated further later).

[0177] T1 is the trace process corresponding to the numerical integration.

[0178] In S3468, T1 tests whether the current local two-point contact sphere intersects the mesh (denoted as condition (I)) or reaches the surface boundary (denoted as condition (II)) (as will be discussed earlier and illustrated later).

[0179] In S3470, if it is determined that none of the conditions are met, trace T1 continues one step, integrates, and obtains a new two-point contact sphere from the numerical solver.

[0180] Otherwise, the successive numerical integration steps of trace T1 are stopped, and the algorithm consists of parameters (u,v,a,b).

number

number

[0181] In S3472, the algorithm removes each transition edge from E that intersects with a line segment of polygon P_1 or P_2. Each removed transition edge is no longer available to the algorithm. In very rare cases, this can lead to a loss of information (for example, in the case of a transition edge having two transitions on it, one of the transitions may be lost by S3472). Discrete models and discretizations can sometimes be too coarse to capture multiple components of the solution set. In such cases, the user can simply use a finer discretization. In any case, this should only happen very rarely when using typical examples and appropriate parameters.

[0182] [This was misleading and simply an error in the flowchart. In the updated flowchart, this step is performed before the step described below.] In S3474, the algorithm verifies whether condition (I) or (II) stopped the trace process T1, and proceeds to S3476 or S3479, respectively, depending on the condition.

[0183] If this is condition (I), then this algorithm prepares to solve other equations describing the behavior of a three-point contact sphere using tracing process T2, which is another ordinary differential equation based on B-Rep (as will be discussed earlier and illustrated further later).

[0184] To that end, in S3476, the algorithm constructs an orthogonal projection of the midpoint m of the last vertex of polygon P corresponding to the last contact sphere of integral T1 onto the intersecting face (i.e., the intersecting third part). The length l of the orthogonal projection is of interest.

[0185] Next, in S3478, the algorithm uses the previously provided parameters (u,v,a,b) for the numerical integration of this extended differential equation, with parameters (c,d) taken from the nearest intersecting vertices of the intersecting surfaces (as tessellated) and parameter l.

[0186] T2 is the trace process corresponding to the numerical integration.

[0187] In S3480, T2 tests whether the current value of l is greater than the radius R of the contact sphere. If this is true, T2 stops; otherwise, the trace continues, and in S3482, T2 integrates one step of the extended differential equation to obtain a new orthogonal projection of a new two-point contact sphere and length l from the numerical solver.

[0188] T2 will eventually stop when test S3480 becomes positive.

[0189] In S3484, the algorithm can bisect the last step of T2 and cut / truncate the traced curve (indicated by C) so that it stops precisely at the three-point contact sphere. This outputs both the three-point contact sphere for the pair of faces (and other faces) supporting p and q, and the two-point contact curve for the same pair of faces leading to the three-point contact sphere.

[0190] If T1 rather stops under condition (II), the method proceeds to S3479, and the final step of T1 can be bisected so that curve C is cut / truncated so that curve C stops precisely at the surface boundary. This outputs a two-point contact curve for the same surface pair.

[0191] In both cases, the algorithm returns to S3420 and starts again with the new transition edge.

[0192] Figure 32B shows a modified version of the flowchart in Figure 32A, the only difference being that container D is not used in S342'''', container D is not stored in S3430'''', and container D is not picked in S3462''''.

[0193] Referring to Figure 33, the bisection performed in S3422 bisects the transition edge T between the active vertex 330 and the inactive vertex 331. Each vertex in the tessellation is a point on the continuous B-Rep input geometry G, and in order to interpret the points on the transition edge between vertices as points on the continuous geometry, the implementation of this method can linearly interpolate between parameters attached to the vertices. Figure 33 shows the bisection between the intersecting sphere 332 (blue) and the non-intersecting sphere 334 (green), which converges to the two-point contact sphere 336 (purple). In this process, the bisection point 337 on the transition edge is reinterpreted as a point on G via the linear interpolation parameters of the initial inactive vertex 331 (green) and the active vertex 330 (blue) (see dashed vector 338).

[0194] Because bisection uses an intersection algorithm that employs approximate mesh geometry, each result may not be precise enough to provide true zero for the system function. However, these results are usually close enough to zero so that the Newton iterations converge quickly to true zero for F.

[0195] Newtonian iteration is a system function

number

number

[0196] ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​Figure 34 shows the intersection problem solved at each step of the numerical integral [T1], which may be modified by using spheres with the same midpoint (center) and smaller radius. This is due to the fact that the spheres intersect a discretized input geometry T with a certain tolerance of 340 (violet). Using the original radius, due to the discretization error, we would get an intersecting sphere with two considered contact surfaces. The radius is reduced by a value equal to the mesh tolerance plus a small safety margin of 342 (orange).

[0200] The trace process [T2] is an extended system function

number

number

[0201] Here, s3 and N3 are parameterized and normal maps related to the intersecting face / surface patch when [T1] stopped at (i). Each ODE is similarly obtained from the implicit function theorem. Its initial value

number

number

[0202] Next, we will explain how to perform the inspection function of the contact sphere.

[0203] Referring to Figures 35 and 36, to inspect two-point and three-point contact balls within the extended ICEM Surf, you can first check the boxes in the respective dialog boxes, and then click either the 2Pt- or 3Pt- Inspection button, respectively. Additional checkboxes can control additional visualizations (distance, points, lines, balls, etc.). Figures 35 and 36 show two-point and three-point contact balls, respectively.

[0204] Figures 37-39 show the results of the contact sphere algorithm applied to the B-Rep (i.e., highly complex shape) of Figures 9-10, where each of the steps described above is applied hundreds of times to obtain numerous touching and medium curves corresponding to the curves of the two-point contact sphere. As shown in Figures 37 and 38, the medium curve 372 is red and the contacting curve 370 is yellow. Figure 39 shows the detected three-point contact sphere 390.

[0205] Figures 40-43 show a series of two-point inspections obtained by dragging sphere 400 along its associated midpoint (red) curve 402. When inspecting two-point contact spheres, the drawn midpoints of each contact sphere can be dragged along their respective midpoint curves using the mouse in real time. The figure shows a series of two-point inspections obtained in this way. As mentioned above, this represents the actual temporal process that occurs in a collision with a pedestrian, where parts of the human body modeled as spheres are dragged along two-point contact spheres and eventually reach a configuration represented by three-point contact spheres.

[0206] Next, the implementation of the second aspect of this method will be described with reference to Figures 44 to 50.

[0207] The calculations underlying head impact diagnosis, primarily the contact ball algorithm, are quite complex, and increasing computation speed through algorithm parallelization simply saves a significant amount of time, thus improving the control process for safety specifications. This is particularly due to the fact that problems typically detected by head impact diagnosis necessitate minor redesigns, which in turn necessitate recalculations of the head impact diagnosis, and as a result, the benefits of faster calculations impact safety compliance processing multiple times.

[0208] The average time required to perform a full HID for complex input shapes like those shown in Figures 9-10 is high, significantly slowing down the vehicle design process. This is especially true because the process often has to be performed in cycles of small design changes that address issues detected by previous HIDs following a new HID calculation. Typically, HID calculations are performed overnight, especially when high accuracy is required. If even one parameter is entered incorrectly, or if any other problem arises, the correction process is significantly delayed. Furthermore, design changes made for engineering purposes, for example, often involve re-checking safety analyses. Thus, the design process as a whole greatly benefits from speeding up the multiple HIDs involved.

[0209] Here, implementing this method addresses this problem.

[0210] First, continuous HID uses the results of discrete HID to approximate the starting value for the tracing process performed between continuous HID operations. Therefore, speeding up discrete HID also improves continuous HID performance if only the latter is used.

[0211] To speed up the calculations of discrete and continuous HID algorithms, the implementation of this method follows an approach that parallelizes the algorithm across its input surface patches for the discrete version, while continuous HID allows parallelization across pairs of surface patches. For example, a typical geometric model of a vehicle consists of hundreds, or more likely, thousands of surface patches (or, more generally, faces), so this improves the performance of the algorithm by a factor of the available parallel threads on the CPU (in contrast to their sequential versions).

[0212] The challenges faced in parallelizing the HID algorithm are, firstly, to safely decouple the steps of the algorithm threads. Secondly, it is more complex to redesign the top-level control flow of discrete and continuous HID to achieve reasonable synchronization of different steps with respect to the workload of each task.

[0213] Executing several operations in parallel has a significant impact on the overall HID runtime. Since tasks can perform their calculations independently, the algorithm provides good scaling with respect to the hardware (i.e., the number of CPUs and their parallel threading capabilities).

[0214] As described here, the implementation of this method involves parallelizing the discrete HID.

[0215] To enable parallelization, it is possible to check which steps of the algorithm can be decoupled. The minimum number of steps to be synchronized is determined by the time in the continuous flow of the algorithm to be parallelized, and the next step requires all the results of the previous step.

[0216] Referring to FIG. 44 showing the flow diagram of the discrete HID, following this approach, the discrete HID can be split into three essential steps. · Preprocessing S310: Tessellation of the input surface (i.e., the face of the B-Rep). • Main calculation S320: Calculation of the intersection of a one-point contact sphere with the entire input geometry. This results in so-called transition edges, each of which has one active vertex and one inactive vertex. In this step, special processing of "sphere intersections" and "edges having critical points" can be performed to ensure thread safety. • Post-processing S330: Bisection transition edges to smooth the transition from active to inactive regions and reduce the error effects imposed by the initial approximation of the input geometry via tessellation.

[0217] Firstly, all three steps can be implemented in a thread-safe manner, for example, using mutex locks, or more generally, semaphores, to ensure secure read / write access for different threads on common input data. Here, each of these steps can be isolated on a surface patch and parallelized. Also, the flowchart shown in Figure 44 reflects the complexity distribution of discrete HID algorithms. Steps S310 (input tessellation) and S330 (bisection of transition edges) are relatively straightforward. Step 320 contains logic essential for yielding active and inactive vertices. Thus, to find more transition edges, step 320 divides the edges under certain criteria (mainly if they are too long), thereby introducing variations of the underlying mesh.

[0218] In all three steps, the input is divided by face; that is, in each step, each thread processes one face patch corresponding to each face of the input B-Rep. This achieves a good balance so that the workload is appropriately distributed across the threads and the synchronization of results between the three steps can be performed without unreasonable latency.

[0219] The precise reason for splitting the discrete HID into three steps is as follows: Step 320 can access the entire tessellation calculated in step 310 to intersect the spheres across the entire approximate input geometry. Step 330 could, at first glance, be parallelized with step 320. However, step 320 can be modified to ensure higher accuracy in critical areas, and the resulting finer mesh can then be considered in step 330 as a whole to improve accuracy.

[0220] Figure 45 shows the top-level control flow of a parallelization approach for discrete HID. The figure compares a continuous flowchart 452 with a parallel flowchart 454 for discrete HID. As described above, the implementation of this method can wait for the end of all threads in each phase before proceeding to the next phase.

[0221] Referring to Figures 46 and 47, embodiments of the present method may further include parallelizing the continuous HID. In other words, the determining step S30 includes, for each pair of faces of the B-Rep, a two-point contact curve calculation algorithm based on each pair of faces, and the calculation algorithm is parallelized across multiple pairs of faces (calculation algorithm S346' in Figure 46, calculation algorithm S346'' in Figure 47).

[0222] Figure 46 shows the control flow of the global contact ball algorithm S340', followed by display S40. The control flow is based on the control flow of Figure 32A. Algorithm Figure 46 differs from the algorithm of Figure 32A, as follows.

[0223] The input is again the set of transition edges E. Therefore, in order to parallelize the global contact sphere algorithm that underlies continuous HID, in the first step, the control flow of the algorithm was grouped into two essential parallelization components.

[0224] The first component S342' consists of transition edge extraction. As is evident from the reference of the numbers in the figure, it is identical to process S342 in Figure 32A, with a few differences. Essentially, S342' is parallelized across pairs of surface patches / faces in the B-Rep. Thus, the input is a container E of transition edges per face (also denoted as "E_k" for the face at index k). Furthermore, S342' involves going back from S3430 to S3420 before directing the algorithm to computation algorithm S346', which is done until all transition edges of a face have been processed. As a result, unlike S342, S342' fills a container D containing triplets (e,p,q) to a relatively large extent. Furthermore, S342' organizes D for the next step of the algorithm. Specifically, in S3430', the algorithm adds p=p(u,v) and q=q(a,b) to e, and stores the triplet (e,p,q) in container D_i (initially empty). Here, i is the index of the face containing q.

[0225] The second component, S346'', constitutes the main part of the algorithm, namely the two-point contact curve calculation algorithm. As is evident from the numerical reference in the figure, it is identical to process S346 in Figure 32A, with only minor differences. Essentially, S346'' is parallelized across pairs of surface patches / faces in the B-Rep. This is the maximum decoupling of the two-point contact sphere calculation, as the numerical integration of the ODE over the local contact spheres combines the two surface patches (each containing its respective contact curve). Again, each component of the algorithm may be thread-safe with respect to the common data used in individual tasks.

[0226] The output of S342' is a container D with a set of starting values ​​where the second starting value is not limited to a particular face. Thus, between the two parallelization boxes (the first parallelized on faces, the second on face pairs), there is a synchronization step S344' where all results E_1, ..., E_n (where n is the number of faces) are processed to obtain containers D_1, ..., D_m (where m is the maximum number of face pairs, i.e., m <= n * (n-1) / 2). However, each face pair does not need to contribute to the starting value here, and therefore m is typically less than n. For this reason, S342' is an attempt to establish one or more candidate starting points belonging to each face (it is not certain that this will be successful for each face pair).

[0227] Specifically, in S344', for each pair of faces having indices i,j, the algorithm uses D_j from the i-th thread in S342' and D_i from the j-th thread to obtain a container D containing the edges of the pair of faces {i,j} and their respective values, and this container D is input to each parallel thread in S346'.

[0228] Referring to Figure 47, the establishment trial S342'' can be parallelized across multiple pairs of faces, together with the calculation algorithm S346''.

[0229] The linear structure that first calculates initial values ​​from all transition edges and then processes them to trace the resulting curve of the two-point contact sphere can be combined to allow for another optimization. The latter is achieved by providing each task with only the transition edges that lie on the two respective surfaces considered in that task. Figure 47 shows the modified control flow S340'' of the global contact sphere algorithm along these lines, in other words, a flowchart of the parallelized version of the global contact sphere operator that underlies the continuous HID. All components are already thread-safe and decoupling on surface patches has been well tested.

[0230] Algorithm Figure 47 differs from the algorithm in Figure 46, which follows the following:

[0231] S342'' is not parallelized with respect to the set of faces of B-Rep, but it is parallelized with respect to the set of faces of B-Rep, so the input to S342'' is the set of all transition edges of each pair of faces for each thread. S342'' further includes an additional step S3427'' which tests whether the vertex v found in S3426 belongs to a second face of each pair of faces of the thread (i.e., any face other than the input edge e and the resulting point p). If the test is negative, the algorithm stops at edge e and tries the next edge of E, otherwise it considers a set of candidate points having one point outside each pair of faces of the thread, so the algorithm tries the next edge of E. Thus the synchronization step S344'' is eliminated, and the interaction between S342'' and the computation algorithm S346'' returns to being identical to the interaction between S342 and S346 in Figure 32A.

[0232] Figure 48 shows a table illustrating the effect of parallelizing discrete HID on speeding up a complete HID algorithm (consisting of discrete HID and sequential HID). Measurements were performed on a Dell Precision 5820 tower with an Intel Xeon W-2123 CPU running at 3.6 GHz (4 cores + hyperthreading) and 64 GB of RAM. The operating system running on that workstation is Windows 10 Enterprise 1809. The number of vertices and triangles generated by each tessellation on different Example B-Rep is shown in the table (Example 1 is the B-Rep in Figures 9-10). Only implementations using parallel versions of discrete HID were tested. Nevertheless, this should be sufficient to get an idea of ​​the performance improvement. Upon reaching the final parallelization of the complete HID algorithm, another average coefficient of at least 2 can be expected.

[0233] Figure 49 shows a table illustrating the workload percentages for three steps of discrete HID applied to three of the examples in Figure 48. Thread workload was measured using the Visual Studio Concurrency Profiler. Since the parallelization was divided into several parallel tasks, the distribution of such tasks is shown below: "T" is the tessellation task, "H" is the normal head collision task, "B" is the edge bisection task, and "C" is the global contact sphere task.

[0234] As shown in the table, workloads are highly dependent on the use case. Synchronization at this point is not optimal for some examples, particularly the head impact task ("H"). This is due to the use of non-thread-safe routines within the core library, which can be easily addressed.

[0235] Figure 50 shows the CPU utilization diagram for B-Rep in Figures 9-10. This provides further insight into the workload of specific tasks.

Claims

1. A computer-aided method for vehicle impact analysis, Step (S10) provides a B-Rep that represents the outer surface of a vehicle and has a surface, Step (S20) provides the radius value (R) of the contact ball, Step (S30) of determining one or more two-point contact curves of a 3D modeled object for the radius value (R), wherein the two-point contact curve is a curve lying on the B-Rep that represents a sequence of two-point contacts between the outer surface of the B-Rep and a two-point contact sphere having radius value R. The aforementioned determination step includes, for each of the multiple sub-pairs of B-Rep, a calculation algorithm for each two-point contact curve based on each sub-pair, The calculation algorithm is parallelized across each of the multiple subpairs by invoking multiple parallel threads of the same calculation algorithm, and each parallel thread takes each of the multiple subpairs as input. The aforementioned decision step (S30) is as follows: (a) and (b) (a) A step of tessellating B-Rep, (a) The step of processing the tessellation, With respect to the aforementioned radius value, one-point contact vertices and non-contact vertices are identified, A transition edge is defined, and each transition edge is bounded by its respective one-point contact vertex and its respective non-contact vertex. Includes, The aforementioned calculation algorithm takes, as input, each pair of parts, and each set of transition edges of each pair of parts, The calculation algorithm includes repeating (c) to (f) below for each pair of the parts until each set of transition edges is empty, (c) Select a transition edge from each set of transition edges, (e) Attempt to trace the two-point contact curve based on the selected transition edge, (e) If the tracing attempt is successful, remove all transition edges that intersect the traced two-point contact curve from each set of transition edges. (c) Remove the selected transition edge from each set of transition edges. Each surface of the B-Rep is parameterized by its respective surface parameterization. [Math 1] Supported by, the trace involves integrating each differential equation, which is the differential with respect to the parameters of a system function describing the two-point contact of the sphere at a pair of points on the B-Rep where each contact is substantially tangent to the B-Rep. The differential equation is the surface parameterization of each of the subpairs. [Math 2] Based on pairs method.

2. Each part of each pair of subparts between the aforementioned plurality of subparts is a respective surface of the B-Rep. The method according to claim 1.

3. The tessellation is parallelized across the set of parts, The aforementioned process and calculation algorithm are executed after the tessellation is completed. The method according to claim 2.

4. The process is parallelized across the set of parts, The calculation algorithm is executed after the processing is completed. The method according to claim 3.

5. The aforementioned decision step (S30) An attempt is made to establish one or more pairs of candidate starting points, each candidate starting point belonging to each part of each pair of parts, and each pair of candidate starting points is attempted to be established based on each transition edge of each pair of parts. If the aforementioned establishment attempt is successful, the calculation algorithm will The selected transition edge is based on each transition edge that successfully established each pair of candidate starting points in the determination step (S30), The aforementioned attempt at tracing, Attempting to find each initial point belonging to the two-point contact curve from each pair of candidate starting points, and If the discovery attempt is successful, trace the two-point contact curve from each initial point. including The method according to any one of claims 1 to 4.

6. The aforementioned attempt to establish this involves bisecting each transition edge of each of the aforementioned subpairs. The method according to claim 5.

7. The attempts to establish the above are parallelized across pairs of the parts or across sets of the parts. The method according to claim 5 or 6.

8. A computer program that, when executed by a processor, includes instructions causing the processor to perform the method according to any one of claims 1 to 7.

9. A computer-readable medium on which the computer program described in claim 8 is recorded.

10. A system comprising a processor coupled with a memory on which the computer program described in claim 8 is stored, wherein the processor is operated by the computer program.

Citation Information

Patent Citations

  • Object extraction system for two-dimensional CAD data, and program

    JP2013058173A

  • Design support device and design support method

    JP2017111636A

  • Projection analysis system for three-dimensional CAD, projection analysis method for three-dimensional CAD, and computer program

    JP2020027654A

  • Vehicle occupant analysis model for vehicle impacts

    US20070143087A1

  • Determining a geometrical CAD operation

    US20120280983A1