Vehicle impact analysis using two-point contact curves
The method addresses inaccuracies in vehicle impact analysis by using B-Rep to solve differential equations for two-point contact curves, achieving enhanced accuracy and efficiency in safety analysis.
Patent Information
- Application Number
- JP2021109606
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-07-03
- Filing Date
- 2021-06-30
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2041-06-30
AI Technical Summary
Existing vehicle impact analysis solutions rely on extensive manual pre-processing and post-processing, leading to inaccuracies and inefficiencies in determining two-point contact locations on vehicle surfaces, which are crucial for safety analysis.
A computer-implemented method using B-Rep (Boundary Representation) to determine two-point contact curves by solving differential equations based on surface parameterizations, enabling accurate and efficient computation of contact impacts.
The method provides a highly accurate geometric representation of two-point contact impacts, improving computational efficiency and reducing errors compared to mesh-based representations, thereby enhancing vehicle safety analysis and design.
Smart Images

Figure 0007736463000063 
Figure 0007736463000064 
Figure 0007736463000065
Abstract
Description
[Technical Field]
[0001] The present invention relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for vehicle impact analysis. [Background technology]
[0002] Numerous systems and programs are available on the market for designing, engineering, and manufacturing objects. CAD is an acronym for computer-aided design, e.g., software solutions for designing objects. CAE is an acronym for computer-aided engineering, e.g., software solutions for simulating the physical behavior of future products. CAM is an acronym for computer-aided manufacturing, e.g., software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays a key role in the efficiency of the technique. These technologies may be incorporated into product lifecycle management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage enterprise knowledge to help develop products from concept to life, across long-term enterprise concepts. PLM solutions offered by Dassault Systèmes (under the trademarks CATIA, ENOVIA, and DELMIA) provide an engineering hub that organizes product engineering knowledge, a manufacturing hub that manages manufacturing engineering knowledge, and an enterprise 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 support that drives optimized product definition, manufacturing preparation, production, and service.
[0003] CAD solutions can be used in particular for vehicle impact analysis, to analyze impacts of likely human parts (such as the head or knees) on the exterior (interior or exterior) surfaces of a vehicle, based on a CAD model of the vehicle representing the exterior surface. Software solutions offered by Dassault Systèmes in particular provide such functionality (under the trademark ICEM Surf).
[0004] The vehicle impact analysis may include a vehicle impact diagnostic, which may essentially be a head impact diagnostic (hereinafter also referred to as "HID"; for convenience, the same acronym is used when considering impacts with human parts other than the head, such as the knee). Such diagnostics are within the scope of safety analysis for automobiles, or other passenger and commercial vehicles. In this regard, automobile companies must comply with certain specifications and / or regulations. Examples of such regulations are set out in the EU and the US by the following regulations: ECE-R 26 Passenger Cars (EU, exterior). ECE-R 61 Commercial Vehicles (EU, exterior). FMVSS 208 Frontal Impact (US, exterior). ECE-R21 Cockpit Structure (EU, interior). FMVSS 201 Dashboard (US, Internal).
[0005] These specifications must be thoroughly verified within the design process of each new vehicle and must be subject to regulatory processes by the respective authorities before the vehicle is approved for serial production. The specifications specifically focus on a static geometric analysis of the interior and exterior of the vehicle, where human body parts (e.g., head or knees) are modeled as spheres of appropriate size. This analysis then considers geometric situations described as contact spheres attached to the exterior / interior of the vehicle. The contact spheres model the impact of a pedestrian or passenger's head / knee against the vehicle. These situations are particularly important because they represent precise points in time from which the forces exerted on the human body can be estimated based on the number of contact points, their distance relative to each other, and the curvature of the vehicle's exterior surface at the contact points.
[0006] Thus, a software solution has been developed to provide a computer-implemented method for vehicle impact analysis, which method includes providing a CAD model representing an exterior surface of a vehicle, providing radius values for a contact sphere, and determining one or more contact shapes of the CAD model relative to the radius values.
[0007] Certain existing solutions, in particular, allow for automatically determining single-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 only affects the tessellation of the input geometry. Other specific existing solutions allow for determining two-point contact locations of a mesh representing the exterior surface of a vehicle. However, these specific other existing solutions, in particular, rely on extensive manual pre-processing and post-processing, which makes them inaccurate and unergonomic.
[0008] In this regard, there remains a need for improved solutions for vehicle impact analysis. Summary of the Invention
[0009] Accordingly, a computer-implemented method for vehicle impact analysis is provided. The method includes providing a B-Rep representing an exterior surface of the vehicle. The B-Rep has a surface. The method includes providing radius values of an osculating sphere. The method also includes determining one or more two-point contact curves of the B-Rep for the radius values. The determining includes solving corresponding differential equations based on the B-Rep for the corresponding two-point contact curves.
[0010] The method may include at least one of the following:
[0011] Each surface of the B-Rep is supported by a respective surface parameterization, and each of the differential equations is based on a respective pair of surface parameterizations.
[0012] Each of the differential equations above is
number
number
number
number
[0013] Solving each of the differential equations includes integrating each of the differential equations from an initial value.
[0014] The integrating includes successive numerical integration steps that generate each respective segment portion of each two-point contact curve until one of the following two conditions is evaluated to be satisfied: (I) the contact sphere intersects the remaining B-Rep, and (II) the boundary of the surface is reached.
[0015] The method includes a test condition (I) that, at each numerical integration step, the osculating sphere intersects with the remainder of the B-Rep, the test including intersecting a local sphere with a mosaic of the B-Rep, the local sphere having a radius R on the order of but smaller than radius R.
[0016] If condition (I) that the osculating sphere intersects with the remainder of the B-Rep is satisfied, the determining step further comprises solving another respective differential equation based on the B-Rep, the other respective differential equation being based on a respective pair of the surface parameterizations and further based on another surface parameterization that supports the intersection.
[0017] Each of the other differential equations is
number
number
number
number
number
[0018] Solving each of the differential equations above solves the zeros of F.
number
number
[0019] The zero finding involves a root finding algorithm on the B-Rep from a pair of starting points on the B-Rep.
[0020] The determining step (S30) tessellating the B-Reps; processing a tessellation, the step including: -Distinguish between one-point contact vertices and non-contact vertices based on radius value Each transition edge defines a transition edge bounded by each one-point contact vertex and each non-contact vertex. setting pairs of starting points based on respective transition edges; Includes:
[0021] The setting includes selecting transition edges until the root-finding algorithm finds the zero; establishing a pair of candidate starting points based on the selected transition edge, optionally including bisecting the selected transition edge; running the root-finding algorithm on B-Reps from a pair of candidate starting points; This includes repeatedly performing the following.
[0022] Further provided is a computer program comprising instructions which, when executed by a processor, cause the processor to carry out the above method.
[0023] Furthermore, a computer-readable medium having the above computer program recorded thereon is provided.
[0024] Additionally, a system is provided that includes a process coupled to a memory having the computer program described above stored therein. [Brief explanation of the drawings]
[0025] [Figure 1] 1 shows a flowchart of an example method. [Figure 2] 1 shows an example of a graphical user interface of the system. [Figure 3] FIG. 1 illustrates an example of a system. [Figure 4] Indicates the B-Rep format. [Figure 5] Indicates the B-Rep format. [Figure 6] Indicates the B-Rep format. [Figure 7] Indicates the B-Rep format. [Figure 8] Indicates the B-Rep format. [Figure 9] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 10] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 11] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 12] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 13] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 14] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 15]Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 16] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 17] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 18] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 19] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 20] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 21] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 22] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 23] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 24]Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 25] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 26] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 27] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 28] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 29] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 30] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 31] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 32A] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 32B]Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 33] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 34] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 35] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 36] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 37] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 38] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 39] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 40] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 41]Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 42] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 43] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 44] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 45] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 46] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 47] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 48] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 49] Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). [Figure 50]Illustrating an implementation of the method, including screenshots of a tested prototype (which may be in color and / or include small text as actual screenshots). DETAILED DESCRIPTION OF THE INVENTION
[0026] Referring to FIG. 1, a computer-implemented method for vehicle impact analysis is provided. The method includes step S10 of providing a B-Rep representing the exterior surface of the vehicle. The B-Rep has a surface. The method also includes step S20 of providing 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.
[0027] Thanks to the determination in S30 of one or more two-point contact curves versus radius values, this method allows the analysis of two-point contact impacts on vehicles. Multi-point contact impacts are particularly important to analyze, as they are a geometric model of the time during the collision, and the main part of the impact force is unloaded on the considered part of the human body.
[0028] This method, thanks to the fact that S10 provides a CAD model of the vehicle's exterior surface, which is specifically a B-Rep, the determined curves are B-Rep curves. As a result, the method outputs a relatively accurate geometric representation of the two-point impact. In fact, B-Rep is a continuous and therefore particularly accurate representation of the vehicle's exterior surface, and as a result, the output of the method is relatively accurate in that the curves are at least accurately positioned on said accurate representation. The accuracy is significantly improved compared to a mesh representation of the exterior surface. In fact, the mesh is often derived from a tessellation of a more accurate CAD model (which may also be a B-Rep), and in any case presents approximation / discretization errors, i.e., by building in tessellation accuracy.
[0029] According to a first aspect of the method, the determining step S30 may include solving a corresponding differential equation for the corresponding two-point contact curve (determined in S30), where the corresponding differential equation is based on B-Rep, thereby further improving the vehicle impact analysis.
[0030] By solving the differential equations for each two-point contact curve, the method determines each two-point contact curve in a well-defined way and therefore produces accurate results. Furthermore, because the differential equations are based on B-Rep, i.e., a particularly accurate representation of the vehicle's outer surface, the two-point contact curves form a particularly accurate representation of the two-point contact impact. Indeed, the solution is based on said accurate representation and therefore produces particularly accurate results.
[0031] Accuracy is significantly improved compared to solutions based on mesh representation of the outer surface, which is particularly relevant for two-point impact analysis.
[0032] According to a second aspect of the method, the determining step S30 may include, for each of the plurality of part pairs of the B-Rep, a respective two-point contact curve calculation algorithm based on each part pair. The calculation algorithm is parallelized across the plurality of part pairs. This further improves the vehicle impact analysis.
[0033] The method achieves computational efficiency thanks to the parallelization of the computational algorithm. Thanks to the fact that parallelization is performed across multiple pairs of B-Rep parts, in particular, the gains from parallel computation are particularly high and parallel threading of the computational algorithm is particularly safe. In fact, two-point contact impacts occur between pairs of parts of the vehicle's exterior. The method takes this into account in order to properly parallelize the computation.
[0034] The first and second aspects of the method may be combined. In such a case, the determining step S30 includes, according to the second aspect, for each pair of parts of the plurality of pairs of parts of the B-Rep, a respective two-point contact curve calculation algorithm based on each pair of parts. And, according to the first aspect, the determining step further includes, according to the first aspect, solving a respective differential equation based on the B-Rep for one or more respective two-point contact curves determined within the parallelized threads of the calculation algorithm (e.g., for each such respective two-point contact curve).
[0035] Alternatively, the method may exhibit the first aspect but not the second aspect. In such cases, the computation algorithm may be non-parallelized or parallelized across different threads. Further alternatively, the method may exhibit the second aspect but not the first aspect. In such cases, the two-point contact curve computation algorithm may exclude solving any differential equations based on B-Rep, or even any differential equations at all.
[0036] The method is computer-implemented, meaning that the steps (or substantially all steps) of the method are performed by at least one computer or any system. A typical example of a computer implementation of the method is performing the method using a system adapted for this purpose. The system includes a processor coupled to a memory, which may be recorded with a computer program including instructions for performing the method. The memory may also store a database. The memory is any hardware adapted for such storage, and may optionally comprise several physically separate parts (e.g., a part for the program and, optionally, a part for the database). The system may further include a graphical user interface coupled to the processor.
[0037] Thus, the method steps are performed by a computer, possibly fully automatically or semi-automatically. In examples, triggering of at least some of the method steps may be performed via user / computer interaction. The level of user / computer interaction required depends on the expected level of automation and can be balanced against the need to implement user preferences. In examples, this level may be user-defined and / or predefined.
[0038] In particular, the method can perform the B-Rep providing step S10 and the radius providing step S20 via user interaction. The method can then perform the determining step S30 fully automatically. In other words, the method can fully automatically perform the setting and / or solving of the differential equations according to the first aspect, and / or the setting of the parallel threads according to the second aspect (including the definition of a set of B-Rep parts), and / or the execution of the point contact curve calculation algorithm (in each parallel thread, i.e., over each defined set).
[0039] In an example, the method may include: Step S10: Providing B-Rep through user interaction. User triggered vehicle impact analysis function. Step S20 of providing a radius via user interaction. Fully automatic judgment step S30.
[0040] A B-Rep is a 3D CAD modeled object, i.e., a 3D modeled object that has been designed or engineered in a CAD system. As such, the method is part of a 3D CAD design process that is itself part of the manufacturing process.
[0041] A modeled object is any object defined by data stored, for example, in a database. In a broad sense, the expression "modeled object" designates the data itself. Depending on the type of system, the modeled object may be defined by different types of data. A system may actually be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In these different systems, the modeled object is defined by the corresponding data. Thus, one can speak of CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, these systems do not exclude one of the other systems, as a modeled object may be defined by data corresponding to any combination of these systems. Thus, a system may be both a CAD and a PLM system.
[0042] A CAD system further refers to any system, such as CATIA, adapted to at least design a modeled object based on a graphical representation of the modeled object. In this case, data defining the modeled object includes data enabling the representation of the modeled object. For example, a CAD system may provide a representation of a CAD modeled object using edges or lines, in some cases with faces or surfaces. The lines, edges, faces, or surfaces may be represented in various ways, for example, with 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 may be stored in a single CAD file or multiple CAD files. Typical sizes of files representing modeled objects in a CAD system are in the range of one megabyte per part. And a vehicle may typically be an assembly of thousands of parts.
[0043] In the context of CAD, a modeled object may typically be a 3D modeled object. "3D modeled object" means any object that is modeled by data that allows for its 3D representation. A 3D representation allows for the object to be viewed from all angles. For example, when a 3D modeled object is represented in 3D, it can be manipulated 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.
[0044] The 3D modeled object may represent the shape of a vehicle that will be manufactured in the real world after vehicle impact analysis is completed. The vehicle may be a passenger car and / or a commercial vehicle. The vehicle may be a ground vehicle such as a car, 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 marine vehicle such as a commercial ship, offshore equipment, yacht, or work boat.
[0045] Figure 2 shows an example GUI for a system, where the system is a CAD system. In the illustration, the 3D modeled object is a brake assembly rather than the exterior of a vehicle. However, the illustration is merely for the purpose of illustrating the CAD system and its functionality.
[0046] The GUI 2100 may be a typical CAD-like interface, with standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menu bars and toolbars include a set of user-selectable icons, each associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools adapted to edit and / or manipulate the 3D modeled object 2000 displayed in the GUI 2100. The software tools may be grouped into workbenches. Each workbench includes a subset of software tools. In particular, one of the workbenches is an editing workbench suitable for editing geometric features of the modeled product 2000. During operation, a designer can, for example, pre-select a portion of the object 2000 and then edit its behavior (e.g., change dimensions, color, etc.) or geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is modeling a stamping or folding of the 3D modeled object displayed on the screen. The GUI may, for example, display data 2500 related to the displayed product 2000. In the illustrated example, the data 2500, displayed as a "feature tree," and their 3D representation 2000, relate to a brake assembly including a brake caliper and disc. The GUI may further present various types of graphic tools 2130, 2070, 2080 to facilitate 3D orientation of objects, for example, to trigger a simulation of the operation of the edited product or to render various attributes of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphic tools.
[0047] FIG. 3 shows an example of a system where the system is a client computer system, eg, a user's workstation.
[0048] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000 and a random access memory (RAM) 1070 also connected to the bus. The client computer further includes a graphical processing unit (GPU) 1110 associated with a 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 controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor memory devices such as EPROM, EEPROM, 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 foregoing may be supplemented by or incorporated in specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to a network 1060. The client computer may also include a cursor control device, a keyboard, and other haptic devices 1090. A cursor control device is used in the client computer to allow a user to selectively position a cursor at any desired location on the display 1080. Furthermore, the cursor control device allows a user to select various commands and input control signals. The cursor control device includes a number of signal generators for inputting control signals to the system. Typically, the cursor control device may be a mouse, with the mouse buttons used to generate the signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.
[0049] A computer program may include computer-executable instructions, which include instructions for causing the device 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 digital electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. The program may also be implemented as an apparatus, for example, an article tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be performed by a programmable processor executing a program of instructions to perform the functions of the method by operating on input data and generating output. The processor is thus programmable and may be coupled to receive data and instructions from, and transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural, object-oriented, or functional programming language, or in assembly or machine language as appropriate. In either case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. In either case, applying the program on a system provides instructions for performing the method.
[0050] The method may be included in a manufacturing process, which may include producing a physical vehicle corresponding to the B-Rep after performing the method. The method improves vehicle impact analysis, and therefore vehicle manufacturing processes.
[0051] The vehicle impact analysis specifies any analysis of an impact likely to occur on the exterior of a vehicle, based on a CAD model of the vehicle. The CAD model here is the B-Rep provided in S10. The method already enables such an analysis by determining one or more two-point contact curves in S30. Indeed, the determining step S30 outputs one or more pieces of data (i.e., curves) each representing each 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.
[0052] A contact sphere is a spherical representation of a human body part, such as the head or knee, that is susceptible to impact by the exterior surface of a vehicle. Spherical representations have long been used prominently to represent the head and knee because they adequately capture the variability in shape and behavior among humans, yet allow for relatively simple calculations. Vehicle impact analysis considers potential contact with the exterior surface of the sphere, and therefore is commonly referred to as a "contact" sphere. A contact sphere can represent an unprotected or protected human body part. For example, a contact sphere can represent a helmet worn by a human.
[0053] By "exterior" surface of a vehicle, it is meant any surface of the vehicle susceptible to impact by a contact ball. The exterior surface may be the exterior surface of an exterior portion of the vehicle (e.g., the body surface of the vehicle, or the Class A surface of an automobile). In such cases, the vehicle may be a ground vehicle (such as an automobile), and the vehicle impact analysis may be an analysis of likely impacts to pedestrians. Alternatively, the exterior surface may be the exterior surface of an interior portion of the vehicle. In such cases, the vehicle may be any passenger vehicle, and the vehicle impact analysis may be an analysis of likely impacts to passengers.
[0054] The method may include, inter alia, displaying a graphical representation of one or more two-point contact curves superimposed on a graphical representation of the vehicle's exterior (e.g., a tessellation of B-Reps). Such visualization of the one or more two-point contact curves enables vehicle impact analysis.
[0055] Alternatively or additionally, the method may include performing a visual inspection functionality. The visual inspection functionality may include displaying a sphere having the radius value provided in S20 and touching the graphical representation of the exterior surface. The method may then include moving the touch sphere (e.g., by the user or automatically), e.g., by the user and using a haptic device (e.g., a mouse), e.g., by dragging the sphere, e.g., by sliding the sphere along the graphical representation of the exterior 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 practice, a human impacted by a vehicle is considered to slide freely over a one-point contact area, and once such a curve is filled, it is then considered 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 curve. During visual inspection, the outer surface and the sphere are constantly displayed (the user can see the movement of the sphere) so that the sliding of the sphere over the outer surface is displayed in real time.
[0056] Alternatively or additionally, the method may include analyzing the surface curvature at the points of the outer surface depending on whether these points belong to the two-point contact curve determined in S30.
[0057] Alternatively or additionally, the method may include performing an impact simulation based on the one or more two-point contact curves determined in S30.
[0058] In all cases, the 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 the design of the vehicle.
[0059] The providing step S10 may involve retrieving a B-Rep from a library of previously designed B-Reps, or the providing step S10 may involve designing a B-Rep from scratch or starting from a previous design.
[0060] "Designing a 3D modeled object" specifies any action or series of actions that are at least part of a process of creating a 3D modeled object. Thus, the method may include creating a 3D modeled object from scratch. Alternatively, the method may include providing a previously created 3D modeled object and then modifying the 3D modeled object.
[0061] After determining step S30, the method may include design changes to the B-Rep (by modifying its design) based on determining step S30 (e.g., to improve safety). The design changes may be performed directly based on the one or more two-point contact curves determined in S30 or based on any post-processing thereof that is part of the vehicle impact analysis. The design changes may include smoothing the outer surface (i.e., reducing its curvature) at the one or more two-point contact curves determined in S30.
[0062] The method may be repeated in which the providing step S10, the providing step S20, and the determining step S30 are repeated.
[0063] In each iteration, the providing step S10 may include taking the B-Rep provided in step S10 of the previous iteration and implementing design changes. In one or more of the iterations, the design changes may be implemented based directly on the 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 the B-Rep representation of the vehicle to be refined based on the vehicle impact analysis proposed in this manner, thus converging towards an improved design.
[0064] Alternatively or additionally, in each iteration, the radius value provided in S20 may be the same as in the previous iteration, or may be modified compared to the previous iteration. In the latter case, the B-Rep may be the same. This allows for an improved impact analysis to be performed by considering different types of contact spheres. However, the method can be iterated with both the radius and the B-Rep being modified from one iteration to another.
[0065] The boundary representation (also known as "B-Rep") format and the concepts used by this method are well known, but are described here.
[0066] The B-Rep model contains topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, and points.
[0067] By definition, a face is a bounded portion of a surface, named the supporting surface. An edge is a bounded portion of a curve, named the supporting curve. A vertex is a point in 3D space. They are related to each other as follows: A boundary portion of a curve is defined by two points (vertices) that lie on the curve. A boundary portion of a surface is defined by its boundary. This boundary is the set of edges of the curve (i.e., parts of the supporting curves) that lie on the surface. The edges of a face's boundary are connected to each other by sharing a vertex. Faces are connected to each other by sharing an edge. By definition, two faces are adjacent at an edge if they share said edge. Similarly, two edges are adjacent if they share a vertex.
[0068] Figures 4 and 5 show a B-Rep model of a cylindrical slot made up of three faces: a top planar surface and two side cylindrical surfaces. 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 a boundary portion of the plane. Face 1's boundary includes edges 4 and 5, each of which is bounded by vertices 10 and 11. Both of these edges have the same support circle. Face 2 is bounded by edges 6, 8, 5, and 13, which all lie on an 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.
[0069] Figure 6 shows the "bounded" topological relationships of the B-Rep model: nodes in the upper layer are faces, nodes in the middle layer are edges, and nodes in the lower layer are vertices.
[0070] Figures 7 and 8 show the relationship between topological entities (faces, edges, vertices) and supporting shapes (infinite cylinder, infinite plane, infinite line, circle, point).
[0071] In a CAD system, a B-Rep model collects, in a suitable data structure, the "bounded" relationships, the relationships between topological entities and supporting shapes, and the mathematical description of the supporting shapes.
[0072] In the following, the expressions "surface patch" or "patch" can be used in reference to either the surface of a B-Rep or its supporting surface, and the expression "surface" itself can also refer to either the surface or its supporting surface.
[0073] Given a radius value for the osculating sphere (e.g., the value provided in S20), a k-point contact is a set of exactly k points of the B-Rep where the osculating sphere simultaneously contacts the exterior surface at exactly k points in the set, without intersecting the exterior surface in volume. In other words, the intersection of the osculating sphere with the exterior surface is a set of exactly k points, and the intersection of the osculating sphere with the vehicle (i.e., the interior of the B-Rep as bounded by the exterior surface) is a null / zero volume. The osculating sphere is sometimes called a "k-point osculating sphere" in this context.
[0074] The determining step S30 outputs one or more two-point contact curves of the B-Rep for each radius value. Each two-point contact curve is a curve lying on the B-Rep and represents a sequence of two-point contacts between the outer surface and a two-point contact sphere having a radius value. Each two-point contact curve may be continuous.
[0075] Each two-point contact curve can represent a set (e.g., continuous) sequence of points where a two-point contact sphere with a radius value contacts the outer surface. In such a case, the B-Rep is defined in 3D, and each two-point contact curve is
number
number
number
[0076] Based on the information, the method may include calculating a locus of a two-point contact sphere corresponding to each two-point contact curve. If each two-point contact curve represents a sequence of points at which a two-point contact sphere having a radius value contacts the exterior surface, the method may further calculate a set of midpoints of the sequence of points, such midpoints describing the centers of the two-point spheres. Such midpoint curves thus represent the locus of the centers of the two-point spheres. Since the radii are provided in S30, the visual inspection functionality mentioned above may therefore be based on the output of decision step S30. The visual inspection functionality may, inter alia, include displaying a sphere having a radius value provided in S20 and centered at the calculated midpoint. By configuration, such a sphere is displayed contacting the graphical representation of the exterior surface with the two-point contact curve.
[0077] Each two-point contact curve can be represented by a polygon. Each vertex of the polygon may be a respective pair of points. This allows for an efficient representation of the two-point contact curve and efficient determination in S30. The midpoint of a pair of points itself forms a polygon, which represents the orbit of the center of the two-point sphere. R^3
[0078] Next, a first aspect of this method will be described.
[0079] According to a first aspect, the determining step S30 includes solving corresponding differential equations based on the B-Rep for corresponding two-point contact curves. In such a case, in S30, each two-point contact curve is determined for a differentiable portion of the B-Rep. In an example, the B-Rep may be distinguishable anywhere. In any case, the method may include determining all two-point contact curves for the differentiable portion of the B-Rep for a radius value. This allows for a thorough vehicle impact analysis.
[0080] As already mentioned, each surface of a B-Rep is supported by a respective surface parameterization. In such a case, the corresponding differential equation solved in S30 may be based on a corresponding pair of surface parameterizations (i.e., those supporting two-point contact). Thus, the determination step S30 fully exploits the continuous and accurate geometric representation conveyed by the B-Rep, thereby yielding accurate results.
[0081] Each pair of surface parameterizations corresponds to a pair of surfaces that can be different or the same surface. For the latter case, note that a two-point contact can occur between two different parts of a B-Rep that belong to a single and the same surface of the B-Rep for a sphere with a radius value (for example, if said surface is sufficiently curved).
[0082] Each differential equation may be as follows:
number
[0083] DF is a system function given by the following for the parameter t (i.e., the variable that parameterizes the considered derivative / Jacobian):
number
number
[0084] {s1,s2} are each pair of surface parameterizations (where S1 may be equal to S2 if contact occurs within a single plane). N1 and N2 are normal maps for s1 and s2, respectively (and thus are normal maps for the surface parameterized by s1 and s2). (u,v) and (a,b) are parameter pairs for s1 and s2, respectively. R is the radius value provided in S20. Finally,
number
[0085] This system function handles multiple sets of B-Rep points.
number
[0086] Now, solving the corresponding differential equation may involve integrating the corresponding differential equation from an initial value. The integration allows for a robust solution. This method can perform the integration according to any known method. The integration is sometimes called "tracing" because it traces a two-point tangent curve. An example of a tracing will be called T1 later.
[0087] For example, the method can perform a numerical integration. Specifically, the integration can include successive numerical integration steps, each resulting in a respective segment portion of a respective two-point tangency curve. This allows for a robust integration. The method can, in particular, implement a Runge-Kutta method.
[0088] The method can perform successive numerical integration steps until one of two conditions is evaluated to be satisfied: (I) the osculating sphere intersects with the rest of the B-Rep, or (II) a surface boundary is reached. This allows the integration to be stopped when appropriate.
[0089] In the case of condition (I), the "remaining B-Rep" is the two contacts (i.e., the
number
number
[0090] In the case of condition (II), the integration will not lead to a result that is no longer located on the surface if the numerical integration step is continued. Therefore, the stopping of the integration due to condition (II) leads to the end of the two-point contact curve being the two-point contact position. The boundary of the surface is the boundary of the B-Rep (and therefore an open B-Rep), in which case the end of the integration 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 adjacent surface.
[0091] The solution of each differential equation may, for example, include a step (I) of testing the intersection of the osculating sphere with the remaining B-Rep at each current integration step, and stopping the integration if the test is positive (condition (I)). The solving may further include (II) testing whether a surface boundary has been reached, and stopping the integration if the test is positive (condition (II)). Performing this second test (II) may be adjusted to the first test (I) being negative (i.e., if the first test was positive, there is no need for the second test).
[0092] For condition (I), the method can discard (and optionally replace) or alternatively and equivalently truncate segment portions corresponding to the number of final numerical integration steps. The replacement or truncation may be such that the resulting curve ends exactly at the three-point contact location. The number of segment portions may be floating-point numbers, i.e., steps and / or fractions of steps must be truncated. In such cases, the method may further include outputting the location of the three-point contact points of the B-Rep relative to the radius value 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). Following the example provided later, determining the number of steps to replace can be performed by another differential equation solution that positions a 3-point osculating sphere (e.g., the second tracing block T2). For condition (II), the method can, for example, optionally bisect the segment portions, each to the final numerical integration step, so as to end exactly at the surface boundary. Regardless of whether the first test is positive, a second test is conducted, and if the second test is positive, condition (I) may prevail.
[0093] Testing condition (I) may involve intersecting a local sphere with a tessellation of the B-Rep, the local sphere having a radius R on the order of but smaller than R. The local sphere may have a radius greater than 0.9*R or 0.95*R, for example, a radius equal to 0.99*R. The local sphere may have the same center as the osculating sphere (i.e., the midpoint of the two-point osculating curve). If the intersection has a non-null volume, the method can evaluate that condition (I) is satisfied. Intersecting a sphere with a tessellation of the B-Rep allows for a relatively fast test of condition (I). However, the tessellation introduces discretization error in the exact shape of the outer surface for the B-Rep. This error corresponds to the mosaic resolution. By testing the intersection of a local sphere with a radius smaller than the radius value of the osculating sphere, the test reduces the probability of obtaining a false positive result and therefore improperly stopping the integration.
[0094] If the condition (I) that the osculating sphere intersects with the rest of the B-Rep is satisfied, the determining step S30 may further comprise a step of solving another respective differential equation based on the B-Rep. As mentioned above, this can be replaced by discarding the segment part corresponding to the last numerical integration step. This other corresponding set of differential equations may be based on the same corresponding set of surface parameterization {s1, s2}, or may be based on another surface parameterization denoted as s3, which supports the intersection. The parameterization s3 is one of the surfaces supporting the surface containing the third part (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 the B-Rep. Regarding the former case, it should be noted that for a sphere with a radius value, three-point contact may occur between three different parts of the B-Rep that belong to a single and same surface of the B-Rep (for example, if said surface is sufficiently curved). By solving the other corresponding differential equations, the last segment can be refined to obtain a numerically accurate position of the three-point contact location (this means up to the numerical tolerance, i.e., the accuracy of the corresponding floating-point unit).
[0095] Regarding the initial solution, the solution of the other corresponding differential equations may involve integrating the corresponding differential equations from an initial value. Each of the other differential equations may have a common solution with the initial respective differential equation at the end of a previous numerical step (the very last step in the case of truncation, or an earlier step in the case of substitution). The common solution may be relied upon to initialize the numerical integration of each of the other differential equations. Thus, the end of the curve at the last numerical integration step becomes part of the initial value of the integration of each of the other differential equations.
[0096] The solution of each of the other differential equations is sometimes called a "tracing" because it also traces the curve (the final portion of the two-point tangency curve in the case of substitution, or the portion of the two-point tangency curve to be eliminated in the case of truncation). An example of a tracing is later called T2. Also, with respect to the initial integration, the integration of the other differential equations may involve successive numerical integration steps, each resulting in a respective segment portion of the respective two-point tangency curve. Finally, the method may involve bisecting each final segment portion to stop exactly at the three-point tangency location.
[0097] The first differential equation is as follows:
number
number
[0098] Each of the other differential equations may be as follows:
number
number
number
[0099] s3 is the other surface parameterization (here, s3 may be equal to s1 and / or s2 if the three-point contact occurs between only two faces, or even within a single face). N3 is the respective normal map of s3 (and therefore the normal map of the face 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 contacts s1(u,v) and s2(a,b). The orthogonal projection may be onto the other surface s3. Finally,
number
[0100] This system function returns a set of three points.
number
[0101] In particular, in the case of a method that truncates a portion of the initially calculated trajectory, the step S30 of determining l(t * ) is higher than R at each numerical integration step, and continuing the integration as long as the test is negative. When l becomes greater than R, it means that three-point contact has occurred. In such a case, the method can bisect the last segment to stop the curve exactly at the three-point contact location. The tip of the bisected segment may be output as the three-point contact location. If the method replaces the last segment, the principle is the same, but a decision step S30 can continue the integration as long as the test is positive.
[0102] Each differential equation
number
number
number
[0103] The zero finding can be performed in any manner. For example, the zero finding may involve a root finding algorithm on the B-Reps from a pair of starting points on the B-Reps. This provides robustness to the method. In particular, the root finding algorithm may be Newton iteration.
[0104] The determining step S30 can set the pair of starting points for the root-finding algorithm in any way. For example, the determining step S30 may include tessellating B-Reps and processing the tessellation. The tessellation (i.e., the result of the tessellation) may be any kind of mesh depending on the tessellation algorithm implemented.
[0105] This process includes identifying one-point contact vertices and non-touching vertices for a radius value R. In other words, the method herein performs a global discrete HID. This can be performed in any manner, including prior art. For example, the identifying step may include touching each vertex of the tessellation with a contact sphere of radius equal to R, perpendicular to the mesh and in a direction from the mesh toward the outside of the vehicle (representing the exterior surface). This method may include determining the normal direction in any manner, for example, as a means of the normal vectors of all faces adjacent to the touched vertex of the mesh. The identifying step may then include evaluating whether the contact sphere intersects with another portion of the mesh that has a non-null volume. If there is a non-null intersection, the vertex is a non-touching vertex (because intersection prohibits the sphere from touching the vertex through collision). Otherwise, if the intersection is a null volume, the vertex becomes a one-point contact vertex. The global discrete HID can optionally perform other processing, such as marking one-point contact vertices as critical or non-critical depending on the curvature of the outer surface at the vertex, and / or modifying the mesh around such critical vertices.
[0106] Next, the process includes defining transition edges. Each defined transition edge is an edge bounded by a respective one-point touch vertex and a respective non-touch vertex. In an example, all edges of the mesh bounded by a respective one-point touch vertex and a respective non-touch vertex may be defined as transition edges.
[0107] The determining step S30 may then include setting pairs of starting points for the 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 zeros of F and then integrating the differential equation.
[0108] When tessellating B-Reps, each tile of the mesh (i.e., mesh face) corresponds to a respective portion of the B-Rep, and the tessellation algorithm can keep track of such correspondences. In other words, the tessellation algorithm can output information to define a bijection between the positions of the B-Rep faces and positions on the mesh, such that each point on the B-Rep can be interpreted as a unique position on the mesh, and conversely, each position on the mesh can be interpreted as a unique point on the B-Rep.
[0109] Setting a set of starting points for the root-finding algorithm may include an iterative scheme in which the root-finding algorithm finds zero. The iterative scheme may include selecting transition edges. The transition edges are selected based on the surface parameterization.
number
[0110] Next, a second aspect of this method will be described.
[0111] According to a second aspect, the determining step S30 includes a respective two-point contact curve calculation algorithm for each of the plurality of part pairs of the B-Rep, the calculation algorithm being based on each pair of parts, and the calculation algorithm being parallelized across the plurality of pairs of parts.
[0112] "Two-point contact curve computation algorithm" means an algorithm that attempts to compute all two-point contact curves for each set of parts (if any), said each set of parts being provided as input to the algorithm. For an input pair of parts, the computation algorithm may, for example, simply determine that no two-point contact curve exists between the input pair of parts, and may therefore be sufficient to output a null result.
[0113] A "part pair" of a B-Rep means a predetermined set of part pairs of a B-Rep, where a "part pair" of a B-Rep is a set of exactly two parts (or parts) of a B-Rep. The two parts of a set may be different or the same. Regarding the latter case, it should be noted that for a sphere with a radius value R, two-point contact can occur within a single and the same part of a B-Rep (for example, if said part is sufficiently bent).
[0114] Here, the computational algorithm is parallelized across the pairs of parts, meaning that the method comprises launching multiple parallel threads of the same computational algorithm, each thread receiving a respective 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 GPU.
[0115] Each part of each part pair of the plurality of part pairs may be a respective face of the B-Rep. In other words, the plurality of pairs of parts are a plurality of pairs of faces of the B-Rep. In other words, the determining step S30 includes, for each pair of the plurality of pairs of faces, a respective two-point contact curve calculation algorithm based on the respective pair of faces, and the calculation algorithm is parallelized across the plurality of pairs of faces.
[0116] The multiple part pairs may consist of (exactly) all pairs of part sets of B-Reps that form a partition of the B-Rep. The partition considered of the B-Rep may simply be the set of B-Rep faces, and the computation algorithm may be parallelized across all set sets of B-Rep faces (including double sets of the same face). This provides a good tradeoff between the time gain provided by concurrent computation 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 the B-Rep of a vehicle.
[0117] As in the first aspect, the determining step S30 may include the steps of tessellating the B-Reps and processing the tessellation. The tessellation (i.e., the result of the tessellation) may be any kind of mesh depending on the tessellation algorithm implemented.
[0118] In such cases, the process includes identifying one-point contact vertices and non-touching vertices for a radius value R. In other words, the method herein performs a global discrete HID. This can be performed in any manner, including prior art. For example, identifying may include touching each vertex of the tessellation with a contact sphere of radius equal to R, perpendicular to the mesh at the vertex and in a direction from the mesh toward the outside of the vehicle (representing the exterior surface). This method may include determining the normal direction in any manner, for example, as a means of the normal vectors of all faces adjacent to the touched vertex of the mesh. The identifying may then include evaluating whether the contact sphere intersects with other portions of the mesh that have a non-null volume. If there is a non-null intersection, the vertex is a non-touching vertex (because intersection prohibits the sphere from touching the vertex through collision). Otherwise, if the intersection is a null volume, the vertex becomes a one-point contact vertex. The global discrete HID can optionally perform other processing, such as marking one-point contact vertices as critical or non-critical depending on the curvature of the outer surface at the vertex, and / or modifying the mesh around such critical vertices.
[0119] Next, the process includes defining transition edges. Each defined transition edge is an edge bounded by a respective one-point touch vertex and a respective non-touch vertex. In an example, all edges of a mesh bounded by a respective one-point touch vertex and a respective non-touch vertex may be defined as transition edges.
[0120] Furthermore, in such a case, the calculation algorithm takes as input, for each pair of parts, a respective set of transition edges for each pair of parts (e.g., faces). The transition edges of each set can consist of all the transition edges of each pair of parts (e.g., faces), or a subpart thereof. This improves the speed of the algorithm. The subpart may consist of all transition edges detected as likely to lead 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 calculation algorithm has no input and can therefore simply output a null result for each pair.
[0121] If the determining step S30 includes tessellating B-Reps and processing the tessellation, the tessellation may be parallelized across sets of portions (e.g., sets of faces). This increases the speed of the method, as different portions (e.g., faces) of a B-Rep can be tessellated separately in safe threads. In such cases, processing and computation algorithms may be performed after tessellation is finished. This allows for a fixed mesh to be obtained before processing, and there is no contention between processing and mesh construction. This increases thread safety.
[0122] If the determining step S30 includes tessellating B-Reps and processing the tessellation, the processing may be parallelized across sets of portions (e.g., sets of faces). This increases the speed of the method, as different tessellated portions (e.g., faces) of a B-Rep can be processed separately in safe threads. In such cases, the computation algorithm may be executed after the processing is finished. This allows for a fixed mesh to be obtained before executing the computation algorithm. This increases thread safety.
[0123] If the determining step S30 includes tessellating the B-Rep and processing the tessellation, the computing algorithm may include an iterative scheme for each pair of parts (e.g., faces) that is repeated until each set of transition edges is empty. The iterative scheme includes selecting a transition edge from each set of transition edges (input into the two-point contact curve computation algorithm). The iterative scheme also includes attempting to trace a two-point contact curve based on the selected transition edge. If the tracing attempt is successful, the iterative scheme includes removing all transition edges that intersect with 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 tracing attempt is unsuccessful, nothing is traced, and therefore nothing occurs. The iterative scheme further includes removing the selected transition edge from each set of transition edges. This ensures the eventual termination of the iteration, which reduces the risk of tracing the same curve twice and therefore improves efficiency.
[0124] The determining step S30 may include a step of attempting to establish one or more pairs of candidate starting points, each of which belongs to a respective part of the respective set of parts (e.g., face). In other words, the determining step S30 searches for candidate pairs of starting points within the considered pair of parts, with one candidate starting point per part. Furthermore, the establishment is attempted for each pair of candidate starting points based on the respective transition edges of each set of parts (and therefore belonging to one of the two parts of the set). The establishment attempt can loop over all transition edges (e.g., face) of each set of parts, or the loop itself can be within a more global loop over all transition edges of the tessellation. This achieves comprehensiveness. The establishment attempt can be parallelized across multiple part pairs or across sets of parts. Both options increase the speed of the determining step S30.
[0125] Each set of transition edges input to the computation algorithm may be populated based on the results of the establishment attempts. Specifically, the decision step S30 may add each transition edge that allows the establishment attempt to succeed to each set of transition edges. Each set may be initially empty and eventually filled with all such added transition edges.
[0126] Thus, 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 therefore the computational algorithm can simply output a null result for each pair, since the computational algorithm has null input.
[0127] Conversely, if the establishment attempt is successful for each pair of parts (eg, faces), the calculation algorithm may be performed as follows:
[0128] The selected transition edges are, by definition, the respective transition edges of the respective sets of transition edges input to the computational algorithm, and therefore, decision step S30 was successful in establishing the respective pairs of candidate starting points based on the respective transition edges.
[0129] In such a case, the tracing attempt involves starting from each pair of candidate starting points and attempting to find each starting point belonging to the two-point tangent curve. If the finding attempt is successful, the tracing attempt involves tracing the two-point tangent curve from the initial point and is therefore successful. Otherwise, if the search attempt fails, the tracing attempt also fails. In such a case, the scheme proceeds to the next iteration, where the computer algorithm selects another transition edge from each set of transition edges and retries the tracing. This is repeated until each set of transition edges is empty. If all tracing attempts fail, the computer algorithm may simply output a null result for the corresponding pair.
[0130] As in the first aspect of the method, tracing (if successful) may involve integrating a corresponding differential equation. In such a case, as in the first aspect of the method, the differential equation is based on a pair of surface parameterizations of corresponding pairs of parts. The differential equation may be the same as in the first aspect of the method, i.e.,
number
number
number
[0131] As in the first aspect of the method, the zero finding may be performed in any manner. For example, the zero finding may include a root finding algorithm on the B-Rep from the pair of candidate starting points of the established B-Rep (if the establishment attempt is successful). This provides robustness to the method. In particular, the root finding algorithm may be Newton iteration.
[0132] As in the first aspect of the method, establishing the attempts may include establishing a set of first points as points of the B-Rep corresponding to a first position of each transition edge (any position between two vertices of each transition edge, and possibly, but not limited to, one of these vertices), and attempting to establish a set of second points as other points of the B-Rep that are candidates for substantially forming a two-point contact set with the first points. This may include, for example, bisecting each transition edge. An example is provided below. The finding attempt may then consist of attempting to find zeros of F by running a root-finding algorithm on the B-Rep from the pair of candidate starting points.
[0133] An embodiment of the method will now be described with reference to Figures 9 to 50, where some of the figures represent actual screenshots of prototype software that was tested in accordance with the embodiment.
[0134] 9-10 show an example of input B-Rep geometry that may be provided at S10. The B-Rep shown represents the exterior surface of the exterior portion of the car at a particular half of the body section. The following discussion will refer to this example unless otherwise noted.
[0135] In the implementation discussed, the determining step S30 involves tessellating the B-Rep and processing the tessellation. This processing involves identifying single-point contact and non-contact vertices for radius values. The identification may be performed according to any known global head impact diagnostic (HID). The implementation has been tested using the global HID provided by Dassault Systèmes' ICEM Surf, which only operates on the tessellation of the input B-Rep geometry, which is why it is called "discrete." Therefore, the implementation discussed and the prototype tested build on this existing global and discrete HID functionality.
[0136] The global and discrete HID functions can involve only one user selection and are therefore easy to use. However, the accuracy of the results depends on the accuracy of the discretization, i.e., the accuracy of the mesh. This can be arbitrarily refined via the tolerance and length parameters, respectively, such that the runtime complexity scales quadratically in these parameters. Thus, while the existing functions are acceptable for determining one-point contact vertices (as done by the global and discrete HID functions), they are less suitable for determining two-point contact curves and isolated three-point contact spheres in S30 (which is where the provided method intervenes and adds to the existing functions).
[0137] Figures 11-12 show the results of discrete HID on the input B-Rep, and Figure 12 shows a vertex-oriented (zoomed-in) visualization of the results of Figure 11. As can be seen, a relatively high accuracy can be obtained with length = 5 mm. The length parameter can generally be adjusted to suit the particular example involved. In this case, a very short length, i.e., length = 5 mm, is used, which can generally be a good value for obtaining very accurate results. The green-marked regions 112 are so-called active vertices, whose respective one-point oscillating spheres do not intersect with the input geometry except at their connection points (i.e., one-point oscillating vertices). All other vertices 114 are called inactive and are marked blue (i.e., non-oscillating vertices). The algorithm works vertex-by-vertex (see Figure 12), and with standard shading, this method can obtain the results of Figure 11.
[0138] 13-14, to understand and control the results of the algorithm, the user has the option to perform a so-called visual inspection function (or "inspection"), in which the user selects vertices, which result in the visualization of the respective one-point (semi / semi) contact spheres 130, 140: the green sphere 130 is active, and the blue sphere 140 is inactive. In FIG. 13, the active vertices were selected so that the one-point contact sphere 130 does not intersect with the rest of the shape, while in FIG. 14, the inactive vertices were selected so that the one-point contact sphere 140 does intersect. In FIG. 14, the blue sphere 140 clearly intersects with the rest of the geometric shape, which is also indicated by the visualization via the yellow marker 142.
[0139] Referring to Figure 15, which shows a close-up of the front light section of Figures 11-12 with several critical areas, the functionality of the discrete HID prior art is tailored to address curvature limitations for certain areas of the exterior (primarily the front of the car) and interior (primarily the dashboard) and is associated with a single-point contact sphere attached to a point in each area. The critical areas for this part of the specification may be marked in red by the individual HID. These are the marked areas 150 that have critical curvature relative to the single-point contact sphere.
[0140] however, · Discrete HID only considers one-point contact sphere. 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. With reference to Figures 19-20, this can be best seen in the transition 190 from the green region 112 to the blue region 114, where the mesh dependence of the results is clearly visible. Although these transition approximations are visible, there is no possibility to inspect 2- or 3-point tangential spheres. This is due to the fact that the algorithm works vertex-wise, so even though there is a point on an edge corresponding to a 2PCS, on a transition edge (an edge in a mesh with one active vertex and one inactive vertex), this point is not calculated and is not represented in the resulting data model, and therefore is not accessible for user inspection. The one-point contact sphere models the first impact point, but depending on the angle at which the impact occurs, the accident participant's head or knee typically slides along the vehicle surface until a configuration is reached where a second contact point occurs, corresponding to the two-point contact sphere in the static geometric model. At this point, the applied force is more severe than in the one-point contact case. However, there is still one degree of freedom: the head / knee (again, depending on the impact angle) typically slides along the curve of the two-point contact sphere until a third contact point appears. The latter corresponds to a three-point contact sphere, which is the final configuration in which all the forces of the impact are not applied to the accident victim. This makes the two-point and three-point contact spheres geometric configurations useful for accident analysis and simulation.
[0141] Referring to Figures 16-18, which represent drawings extracted from ECE R-26, which represent examples of specifications relating to two-point contact spheres, the aforementioned specifications (as defined, for example, in EU and US regulations) further impose restrictions regarding curvature criteria in much more restricted areas related to the contact points of two-point and three-point contact spheres.
[0142] The inspection process to ensure conformance to new vehicle specifications is extensive and may even be incorporated into the design process at multiple stages. This begins with the initial design and avoids the pitfalls of providing draft designs that cannot be brought into compliance with safety regulations at later stages of the design and manufacturing process. During intermediate stages of the design process, there are typically multiple cycles of small- to medium-sized redesigns, which are guided by the vehicle's engineering from a technical perspective, as the initial design proposal now must satisfy several additional boundary conditions. Finally, at later stages when fully functional prototypes are available, there is a control process in which local authorities check the prototypes for compliance with safety regulations, particularly those involving pedestrian and passenger safety.
[0143] The latter focuses on critical parts of the human body. To estimate head or knee impacts for pedestrians or passengers during an accident, the respective specifications use static geometric configurations that consider a sphere (as a model of the head or knee) when it collides with the exterior or interior of a vehicle. These, in turn, refer to so-called osculating spheres, which can be calculated for a given geometric shape (in this case, a vehicle). A common geometric situation for surface input shapes is the existence of two-, one-, and zero-dimensional sets of one-, two-, and three-point osculating spheres, respectively. The first technical problem addressed by the implementation of this method is their calculation. The second technical challenge is how to effectively accompany the compliance process that automotive companies must ensure with each vehicle development. The implementation of this method proposes interactive inspection of two- and three-point osculating spheres and their respective visualizations, which can be performed in real time after the geometric osculating sphere problem is solved.
[0144] The implementation of the method consists of multiple parts that facilitate the process of safety compliance, and at its core begins with the calculation of all relevant two-point and three-point osculating spheres. However, the operator is actually much more general. It is essentially an intersection operator for offset surfaces. For example, it can be easily adapted to produce surface-surface intersection results (by setting the offset of the input surface to zero).
[0145] Furthermore, the inspection functions of the implementation of the method allow the designers and engineers involved in the vehicle development process, as well as the inspectors of the respective authorities, to analyze the critical configurations related to the geometric situations represented by the two-point and three-point contact spheres. These inspection functions can typically be realized by complex manual processes that involve the manual construction of such geometric configurations bit by bit. This not only corresponds to the working hours of designated experts, but also interrupts the respective development process on multiple occasions.
[0146] The first feature of the implementation of the method is an algorithm for calculating the curve of a two-point osculating sphere, relying on numerical solutions related to ordinary differential equations, which trace the zero sets describing the derivatives of the local two-point osculating sphere and the orthogonal projection. To globalize the results at each step of the numerical integration process, a complex intersection algorithm can be used, which builds a bounding box hierarchy of the input geometry and solves the intersection problem between a given sphere and the input geometry in logarithmic time complexity. This solves the technical problem of calculating all two-point and three-point osculating spheres (that touch at differentiable points of the input geometry).
[0147] A second feature of this method embodiment is provided by a respective inspection function that allows the user to interactively examine the calculated contact sphere in real time. This includes, in particular, the possibility to select a two-point contact sphere and move it along the input geometry in real time. The latter is accompanied by a visualization that allows the user to control the accuracy of the calculation results and subtract important measures to ensure compliance with safety specifications. This solves the technical problem of designing an efficient process for incorporating a compliance process into the typical design and engineering process for the development of new vehicles, such as those implemented by European, American, and Asian automotive companies.
[0148] 19-20, the continuous HID provided by implementing the present method provides greater accuracy than 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 allows for calculations accurate to the numerical tolerances of the B-Rep used in input descriptions and floating-point units of modern CPUs.
[0149] 19-20 show a comparison of discrete and continuous HID, where the two are overlaid. Discrete HID produces blue region 114 and green region 112, whose transition 190 roughly describes the contact line of a two-point contact sphere. They are neither precise nor accessible for inspection. Continuous HID provides a yellow contact line 192 that is not only precise to numerical tolerances, but is also selectable and allows for thorough inspection.
[0150] As shown in Figures 21-22, the nature of the results of continuous HID allows for the inspection of two-point and three-point contact spheres, which is not possible in a discrete context because these entities are not simply calculated by a discrete approach. Figures 21-22 show examples of two-point and three-point contact sphere inspection with visualizations of their respective metrics. These visualizations are all geometric entities associated with the inspected contact sphere, i.e., the sphere itself (visualized as a hemisphere or half-sphere), the contact points, and the associated distances. Additionally, the inspection capabilities of continuous HID allow the midpoint of a two-point inspection sphere to be dragged along its associated intermediate curve.
[0151] The implementation's global contact sphere algorithm (i.e., part of decision step S30, also referred to as the "continuous HID algorithm") uses the results of the normal head impact diagnosis for its starting value calculation, as well as to quickly find possible surface pairs (where potential two-point contact spheres can be placed). Thus, more accurate results of the normal head impact diagnosis will produce better global contact sphere results. This is a trade-off between accuracy and performance.
[0152] Next, the implementation of the continuous HID algorithm is described. This discussion provides a step-by-step explanation through the respective flowcharts.
[0153] With reference to Figure 23, this is illustrated by giving the results of the osculating sphere algorithm applied to a very simple input geometry, hereafter called 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.
[0154] Referring to Figure 24, the top-level flow of the osculating sphere algorithm consists of five steps.
[0155] 25-26 show a flow chart of the surface pre-treatment (step 1 and step 2) and the result after step 2, respectively, for a simple example.
[0156] Referring to Figure 25, steps 1 and 2 are front-end processes, with step 1 being ICEM Surf's single-contact discrete HID and step 2 being the extraction of transition edges. In step 1, input provided by a single user selection is used to construct a bounding box hierarchy, which is then used by the intersection operator, which first performs an intersection test of a single-contact sphere attached to each vertex in the mesh with the entire discretized input geometry. The constructed intersection operator is also used in later steps of the algorithm to perform an intersection test of an arbitrary sphere with the input shape, which is done in logarithmic time complexity.
[0157] 26, the result is a mesh where each vertex is tagged as active if there is no intersection with the input geometry (i.e., a one-point touching vertex), or inactive otherwise (i.e., a non-touching vertex). In step 2, the algorithm extracts from the result of step 1 a set of transition edges where two vertices are tagged differently.
[0158] Figures 27-28 show a flowchart for a simple example of the approximation of two-point contact sphere touch points (Step 3) and its results, respectively. After Step 2, each transition edge forms a good candidate for one of the two-point contact sphere touch points. The associated second touch point for each transition edge is approximated in Step 3 (see Figure 27). In this step, for each transition edge, we first perform a bisecting plane on the edge with the help of the intersection operator constructed earlier, thereby obtaining a reasonably good approximation for the initial contact point of the desired two-point contact sphere. In this process, the intersection operator generates a good candidate for the second contact point. The result of Step 3 is, for each transition edge, a reasonable approximation for a pair of touch points, as shown in Figure 28.
[0159] Figure 29 shows a flowchart of 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 the true zero (up to a numerical tolerance) of the underlying system function. This is then used as the starting point for numerically integrating the usual ODE system, which is obtained from applying the implicit function theorem to the system function. The resulting trajectory contains all the information to extract the two contact curves and the intermediate curves of a one-dimensional family of two-point contact spheres. However, to obtain global results at every step, a constructed intersection operator is first used to check the intersection of the input shape with a slightly modified (smaller radius, same midpoint) version of the current contact sphere. The 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 a reasonable candidate vertex of the impact surface mesh, which is used as the starting point for Newton's iteration, which provides the orthogonal projection of the sphere's midpoint onto the impact surface.
[0160] FIG. 30 shows the result of performing this tracing step without truncating the last segment.
[0161] Referring to Figure 31, to perform such truncation, the algorithm can then trace backward from the stopping point of the previous integration process using an extended ODE-system that additionally describes infinitesimal changes in the constructed orthogonal projection. Here, the backward integration stops as soon as the length of the orthogonal projection becomes larger than the original radius of our osculating sphere, which is appropriately bisected to yield high accuracy.
[0162] As shown in Figure 31, this not only provides numerically accurate stopping points for the curve of a two-point osculating sphere, but also corresponds to a three-point osculating sphere.
[0163] All are drawn in step 5, with the tangent curve 314 drawn in yellow and the associated curve 312 at the midpoint drawn in red.
[0164] Next, FIGS. 32A and 32B will be described.
[0165] Figure 32A shows the implementation of continuous HID as a whole. The discussion then provides specifications for each system function, its associated ODE, some explanations regarding bisection, and notational conventions.
[0166] 32A shows a flowchart of the global contact sphere algorithm S340, followed by display S40. Algorithm S340 may form part of decision step S30, which may be performed after decision step S30 has performed the B-Rep tessellation and tessellation process, as described above. The process may have identified single-contact vertices and non-contact vertices for radius values. The process may then have defined transition edges, each bounded by a respective single-contact vertex and a respective non-contact vertex.
[0167] Therefore, the algorithm S340 may be input with an initial input E that is a container of all transition edges resulting from the discrete HID algorithm.
[0168] The algorithm operates in a loop, first testing whether all transition edges e in E have been processed (S420). If the answer is Yes, the algorithm terminates and the method may display, at S40, for user visualization a graphical visualization of all two-point contact curves previously traced by the algorithm and all three-point contact points (at the extremities of said curves) previously found by the algorithm. If the answer is No, the algorithm rather performs normal iteration by executing S342.
[0169] S342 is a process S3422-3430 of establishing, based on each transition edge e of E, each pair {p, q} of candidate starting (touching) points of B-Rep.
[0170] At S3422, the algorithm bisections the remaining transition edge e to obtain a point p' on e, interprets p' as a point p = p(u,v) on B-Rep, and focuses on G, where p is a good candidate for the contact point of the two-point contact sphere.
[0171] In S3424, the algorithm fits a sphere S with radius R (provided earlier in S20) to p and identifies the midpoint (i.e., center) of S as point m. Sphere S is an osculating sphere.
[0172] In S3426, the algorithm intersects S with a tessellation of B-Reps, T. Then, the algorithm collects the vertex v of T that intersects S (i.e., is contained in a sphere) and is closest to m.
[0173] At S3428, the algorithm interprets v as a point q=q(a,b) on the B-RepG, where p and q are good candidates for the two contact points of the two-point osculating sphere.
[0174] At S3430, the algorithm appends p=p(u,v) and q=q(a,b) to e and stores the triplet (e,p,q) in container D (initially empty).
[0175] This ends the current iteration of process S342 and the algorithm then executes the two-point contact curve calculation algorithm S346.
[0176] At S3462, the algorithm selects (i.e., chooses) a transition edge (i.e., within a triplet) from D, and uses the attachment parameters (u, v, a, b) from the triplet as an initial guess, and performs Newton iterations on B-Rep based on this guess, i.e., from pairs of candidate starting points p and q (as discussed above and further exemplified below). Here, the algorithm attempts to trace a two-point tangent curve based on the selected transition edge e by attempting to find each initial point belonging to the two-point tangent curve from each pair of candidate starting points p and q.
[0177] 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 such a case, thanks to later steps in the algorithm, the algorithm succeeds in robustly tracing the two-point contact curve. If not, the algorithm returns to S3420 and tries again with a new transition edge.
[0178] In S3466, the algorithm sets the zeros found by the Newton iterations as the initial / starting values for numerically integrating each of the ordinary differential equations that describe the behavior of the two-point contact sphere (as discussed above and further exemplified below).
[0179] T1 is the tracing process corresponding to the numerical integration.
[0180] In S3468, T1 tests whether the current local two-point contact sphere intersects the mesh (denoted as condition (I)) or reaches a surface boundary (denoted as condition (II)) (as discussed above and further exemplified below).
[0181] If it is evaluated in S3470 that neither condition is satisfied, trace T1 continues one step and integrates to obtain a new two-point osculating sphere from the numerical solver.
[0182] Otherwise, the successive numerical integration steps of trace T1 are stopped and the algorithm is
number
number
[0183] In S3472, the algorithm removes from E each transition edge that is intersected by 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 (e.g., for a transition edge that has two transitions on it, one of the transitions may be lost by S3472). Discrete models and discretizations can, in practice, 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 occur very rarely when using typical examples and appropriate parameters.
[0184] [This was misleading and simply an error in the flowchart. In the updated flowchart, this step occurs before the step described below.] In S3474, the algorithm verifies whether condition (I) or (II) stopped tracing process T1, and proceeds to S3476 or S3479, respectively, depending on the condition.
[0185] If this is condition (I), then the algorithm states that it prepares to solve the other equations describing the behavior of the three-point tangential sphere using the tracing process T2, another respective ordinary differential equation based on B-Rep (as discussed above and further exemplified below).
[0186] To do so, in S3476, the algorithm constructs the orthogonal projection of the midpoint m of the last vertex of polygon P corresponding to the last osculating sphere of integral T1 onto the intersecting face (i.e., the intersecting third part). The length l of the orthogonal projection is noted.
[0187] Next, in S3478, the algorithm uses the parameters (u,v,a,b) already provided, with the parameters (c,d) taken from the nearest intersection vertex of the intersection surface (as tessellated), and the parameter l, for the numerical integration of this extended differential equation.
[0188] T2 is the tracing process corresponding to the numerical integration.
[0189] In S3480, T2 tests whether the current value of l is greater than the radius R of the contact sphere. If this is the case, 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 the new two-point contact sphere and length l from the numerical solver.
[0190] T2 is eventually stopped by a positive test S3480.
[0191] At S3484, the algorithm can bisect the last step of T2 and cut / truncate the curve being traced (denoted C) to stop exactly at the three-point sphere. This outputs both the three-point sphere for the face pair (and other faces) supporting p and q, and the two-point sphere for the same face pair leading to the three-point sphere.
[0192] If T1 rather stops at condition (II), the method proceeds to S3479, where the last step of T1 can be bisected to cut / truncate curve C so that it stops exactly at the surface boundary, thereby outputting a two-point contact curve for the same surface pair.
[0193] In either case, the algorithm returns to S3420 and starts again at the new transition edge.
[0194] FIG. 32B shows a variation of the flowchart of FIG. 32A, the only difference being that in S342'''', container D is not used, in S3430'''', container D is not stored, and in S3462'''', container D is not picked.
[0195] Referring to Figure 33, the bisection performed in S3422 bisects the transition edge T between active vertex 330 and inactive vertex 331. Each vertex of the tessellation is a point on the continuous B-Rep input geometry G, and to interpret points on the transition edge between vertices as points on the continuous geometry, an implementation of the method can linearly interpolate between parameters attached to the vertices. Figure 33 shows the bisection line between intersection sphere 332 (blue) and non-intersection sphere 334 (green), which converges to two-point osculating sphere 336 (purple). Within this process, bisection point 337 on the transition edge is reinterpreted as a point on G (see dashed vector 338) via the linearly interpolated parameters of the initial inactive vertex 331 (green) and active vertex 330 (blue).
[0196] Because bisection uses an intersection algorithm that uses approximate mesh geometry, the respective results may not be accurate enough to provide the true zero of the system function. However, these results may be close enough to zero in most cases so that the Newton iterations converge quickly to the true zero of F.
[0197] Newton iteration is a system function
number
number
number
[0198] The tracing process [T1] provides a numerical solution of the initial value problem associated with the implicit ordinary differential equation
number
number
[0199] where DF is the derivative (Jacobian) of F, and the primed variables represent their respective derivatives with respect to t. To clarify this, we can write this system of linear equations as
number
number
[0200] Referring to Figure 34, at each step of [T1], the current two-point osculating sphere (using a slightly smaller radius) intersects with the remainder of the complete discretized input shape. If there is an intersection [T1], it stops at condition (I) and provides the respective intersecting face / surface patch parameterization s3. Otherwise, [T1] stops at condition (II).
[0201] Figure 34 shows the intersection problem solved at each step of the numerical integration [T1], which may be modified by using a sphere with the same midpoint (center) and a smaller radius. This is due to the fact that the sphere is intersected against the discretized input geometry T with a certain tolerance 340 (violet). Using the original radius would result in an intersection sphere with two considered contact surfaces due to the discretization error. The radius is reduced by the mesh tolerance plus a small safety margin 342 (orange).
[0202] The trace process [T2] is an extended system function
number
number
[0203] where s3, N3 are the parameterization and normal map associated with the face / surface patch intersected when [T1] stopped at (i). Each ODE is similarly obtained from the implicit function theorem. Its initial value
number
number
[0204] Next, the implementation of the inspection function of the contact sphere will be described.
[0205] Referring to Figures 35-36, to inspect two-point and three-point contact spheres in the Extended ICEM Surf, one can first check the boxes in the respective dialog boxes and then click either the 2Pt- or 3Pt-Inspect button, respectively. Additional checkboxes control additional visualizations (distance, point, line, sphere, etc.). Figures 35 and 36 show two-point and three-point contact spheres, respectively.
[0206] Figures 37-39 show the results of the osculating sphere algorithm applied to the B-Rep (i.e., highly complex shape) of Figures 9-10, where each of the above steps is applied hundreds of times to obtain a large number of touching and middle curves corresponding to the curves of the two-point osculating sphere. As shown in Figures 37 and 38, the middle curve 372 is red and the touching curve 370 is yellow. Figure 39 shows the detected three-point osculating sphere 390.
[0207] Figures 40-43 show a series of two-point tests obtained by dragging a sphere 400 along its associated midpoint (red) curve 402. When testing two-point contact spheres, the depicted midpoint of each contact sphere can be dragged along the respective midpoint curve using the mouse in real time. The figures show a series of two-point tests obtained in this way. As mentioned above, this represents the actual temporal process that occurs in a collision with a pedestrian, where a human body part modeled as a sphere is dragged along the two-point contact sphere, ultimately reaching a configuration represented by a three-point contact sphere.
[0208] Next, the implementation of the second aspect of the present method will be described with reference to FIGS.
[0209] The calculations underlying head impact diagnosis, primarily the contact sphere algorithm, are fairly complex, and speeding up the calculations by parallelizing the algorithm simply saves a lot of time and therefore improves the safety specification control process. This is particularly due to the fact that problems detected by head impact diagnosis typically force small redesigns, which in turn force recalculations of head impact diagnosis, so that the benefits of faster calculations affect the safety compliance process multiple times.
[0210] The average time required to perform a complete HID for complex input geometries such as those shown in Figures 9-10 is high, significantly slowing down the vehicle design process. This is especially true because this process must often be performed in cycles consisting of a new HID calculation followed by a small design change that addresses issues detected by the previous HID. Typically, HID calculations are performed overnight, especially if they must be performed with high accuracy. If just one parameter is entered incorrectly or some other problem occurs, the correction process is significantly delayed. Furthermore, each design change, e.g., for engineering purposes, often involves a recheck of the safety analysis. The design process as a whole thereby significantly benefits from the speedup of the multiple HIDs involved.
[0211] The implementation of this method now addresses this issue.
[0212] First, continuous HID uses the results of discrete HID to approximate the starting value for the tracing process performed during continuous HID. Thus, speeding up discrete HID also improves continuous HID performance if only the latter is used.
[0213] To speed up the computation of the discrete and continuous HID algorithms, the implementation of the present method follows the approach of parallelizing the algorithm across its input surface patches for the discrete version, while continuous HID allows for parallelization across pairs of surface patches. Since a typical geometric model of, for example, a vehicle, consists of hundreds, or more likely, thousands of surface patches (or, more generally, faces), this improves the performance of the algorithms (as opposed to their sequential versions) by a factor of the parallel threads available to the CPU used.
[0214] The challenges faced in parallelizing the HID algorithm are, first, to safely decouple steps of the algorithm threads, and second, to redesign the top-level control flow of HID from discrete to continuous, making it more complex to achieve reasonable synchronization of different steps with respect to the workload of each task.
[0215] Performing several operations in parallel has a significant impact on the overall runtime of the HID: since tasks can perform their computations independently, the algorithm offers good scaling with respect to hardware (i.e., number of CPUs and their parallel threading capabilities).
[0216] As described herein, implementation of the method involves parallelizing discrete HIDs.
[0217] It is possible to check which steps of an algorithm can be decoupled to allow parallelization: the minimum number of steps that must be synchronized is determined by the time in the continuous flow of the algorithm to be parallelized, where the next step requires the full result of the previous step.
[0218] Referring to Figure 44, which shows a flow diagram of a discrete HID, following this approach, a discrete HID can be divided into three essential steps. · Preprocessing S310: Tessellation of input faces (i.e., faces of B-Rep). Main calculation S320: Calculation of the intersection of one-point tangent spheres 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 handling of "sphere intersections" and "edges with critical points" can be performed to ensure thread safety. Post-processing S330: Bisection of transition edges to smooth transitions from active to inactive regions and reduce error effects imposed by initial approximation of the input geometry via tessellation.
[0219] First, all three steps can be implemented in a thread-safe manner, for example, using mutex locks, or more generally, semaphores, to ensure safe read / write access of different threads on the common input data. Here, each of these steps can be separated and parallelized on the surface patch. The flowchart shown in Figure 44 also reflects the complexity distribution of the discrete HID algorithm. Steps S310 (input tessellation) and S330 (transition edge bisection) are relatively straightforward. Step S320 contains the essential logic for determining active and inactive vertices. Therefore, to find more transition edges, step S320 splits edges under certain criteria (mainly if they are too long), thereby introducing variations in the underlying mesh.
[0220] In all three steps, the input is split face-by-face, i.e., in each step, each thread processes one face patch corresponding to a face of the input B-Rep. This achieves a good balance so that the workload is well distributed across the threads and the synchronization of results between the three steps can be done without unreasonable latency.
[0221] The precise reason for splitting discrete HID into three steps is as follows: Step 320 has access to the entire tessellation computed in step 310 in order to intersect a sphere against the entire approximate input geometry. Step 330 may, at first glance, be parallelized with step 320. However, step 320 may modify the mesh to ensure greater accuracy in critical regions, and the resulting finer mesh may be considered as a whole in step 330 to improve accuracy.
[0222] Figure 45 shows the top-level control flow of the parallelized approach for discrete HID. The figure compares the serial flow chart 452 versus the parallel flow chart 454 of the discrete HID. In line with the above, implementations of the method can wait for the end of all threads in each phase before proceeding to the next phase.
[0223] 46-47, an embodiment of the method may further include parallelizing successive HIDs. In other words, the determining step S30 includes, for each pair of surfaces of the B-Rep, a respective two-point contact curve calculation algorithm based on each pair of surfaces, and the calculation algorithm is parallelized across multiple pairs of surfaces (calculation algorithm S346' in FIG. 46, calculation algorithm S346'' in FIG. 47).
[0224] Figure 46 shows the control flow of the global osculating sphere algorithm S340' followed by the display S40. The control flow is based on that of Figure 32A. The algorithm Figure 46 differs from the algorithm of Figure 32A according to the following.
[0225] The input is again the set of transition edges E. Therefore, to parallelize the global osculating sphere algorithm underlying continuous HID, in a first step we group the control flow of the algorithm into two essentially parallelizable components.
[0226] The first component S342' consists of transition edge extraction. As is evident from the numerical references in the figure, it is identical to process S342 of FIG. 32A, with only minor differences. Essentially, S342' parallelizes across the set of surface patches / faces in B-Rep. Thus, the input is a container E of transition edges per face (also denoted "E_k" for the face with index k). Furthermore, S342' involves returning from S3430 to S3420 before directing the algorithm to computational algorithm S346', until all transition edges for the face have been processed. Consequently, unlike S342, S342' fills a container D containing triplets (e, p, q) in a relatively large area. Furthermore, S342' organizes D for the next step of the algorithm. Specifically, in S3430′, the algorithm appends p=p(u,v) and q=q(a,b) to e and stores the triplet (e,p,q) in container D_i (initially empty), where i is the index of the face containing q.
[0227] The second component S346' constitutes the main part of the algorithm, i.e., the two-point contact curve computation algorithm. As is evident from the numerical reference in the figure, it is identical to process S346 in FIG. 32A, except for minor differences. Essentially, S346'' is parallelized over the set of surface patch / face pairs in B-Rep. This is the maximum decoupling of the two-point contact sphere computation, since the numerical integration of the ODE for the local contact sphere couples the two surface patches (including their respective contact curves). Again, each component of the algorithm may be thread-safe with respect to common data used in the individual tasks.
[0228] The output of S342' is a container D with a set of start values where the second start value is not limited to a particular face. There is therefore a synchronization step S344' between the two parallelization boxes (the first parallelized on faces, the second parallelized on face pairs) in which all results E_1, ..., E_n (n is the number of faces) are processed to obtain containers D_1, ..., D_m (m is the maximum number of face pairs, i.e., m <= n * (n - 1) / 2). However, each face pair does not need to contribute a start value here, and therefore m is typically smaller than n. For this reason, S342' is an attempt to establish one or more candidate start points belonging to each face (without being certain to succeed for every pair of faces).
[0229] Specifically, in S344', for each face pair with index i,j, the algorithm uses D_j from the i-th thread and D_i from the j-th thread of S342' to obtain a container D with the edges and their respective values of the face pair {i,j}, which is input to each parallel thread of S346'.
[0230] Referring to FIG. 47, the establishment attempt S342'' along with the computation algorithm S346'' can be parallelized across multiple pairs of surfaces.
[0231] Linear structures that first calculate initial values from all transition edges and then process them to trace the resulting curve of the two-point osculating 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 each of the two surfaces considered in that task. Figure 47 shows the modified control flow S340'' of the global osculating sphere algorithm along these lines, i.e., a flowchart of the parallelized version of the global osculating sphere operator underlying continuous HID. All components are already thread-safe, and decoupling on surface patches has been successfully tested.
[0232] The algorithm of FIG. 47 differs from the algorithm of FIG. 46 according to the following.
[0233] Since S342'' is not parallelized to the set of faces of B-Rep, but is parallelized to the set of faces of B-Rep, the input of S342'' is the set of all transition edges of each pair of faces of each thread. S342'' further includes an additional step S3427'' of testing whether the vertex v found in S3426 belongs to the second face of each set of faces of the thread (i.e., the other face 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, since it will consider a set of candidate points with one point outside the set of faces of each of the threads, the algorithm tries the next edge of E. Therefore, the synchronization step S344'' is eliminated and the interaction between S342'' and the calculation algorithm S346'' reverts to being identical to the interaction between S342 and S346 of Figure 32A.
[0234] Figure 48 shows a table showing the impact of parallelizing discrete HID on the speedup of the complete HID algorithm (consisting of discrete HID and continuous HID). Measurements were performed on a Dell Precision 5820 tower equipped with an Intel Xeon W-2123 CPU running at 3.6 GHz (4 cores + hyperthreading) and 64 GB RAM. The operating system running on the workstation is Windows 10 Enterprise 1809. The number of vertices and triangles generated by each tessellation on different example B-Reps is shown in the table (example 1 is the B-Rep in Figures 9-10). Only implementations using the parallel version of discrete HID were tested. Nevertheless, this should be sufficient to get an idea of the performance improvement. When the final parallelization of the complete HID algorithm is reached, another average factor of at least 2 is expected.
[0235] Figure 49 shows a table showing the workload percentages of the three steps of discrete HID applied to three of the examples in Figure 48. The thread workload was measured with the Visual Studio Concurrency Profiler. As the parallelization was divided into several parallel tasks, the distribution of such tasks is shown below: "T" is the tessellation task, "H" is the regular head collision task, "B" is the edge bisection task, and "C" is the global contact sphere task.
[0236] As the table shows, the workload is highly dependent on the use case. Synchronization at this point is suboptimal for some examples, especially the head impact task ("H"). This is due to the use of non-thread-safe routines in the core library which can be easily addressed.
[0237] Figure 50 shows the CPU utilization diagram for B-Rep in Figures 9-10, which gives another hint at the workload of a particular task.
Claims
1. 1. A computer-implemented method for vehicle impact analysis, comprising: Providing a B-Rep (S10) representing the exterior surface of a vehicle and having a surface; Providing a radius value (R) of the osculating sphere (S20); determining (S30) one or more two-point contact curves of the B-Rep for a radius value (R), said two-point contact curves being curves lying on said B-Rep that represent a sequence of two-point contacts between the outer surface of the B-Rep and a two-point contact sphere having a radius value R; wherein the determining step includes solving a respective differential equation based on B-Rep for each two-point contact curve; Each face of the B-Rep is given by its respective surface parameterization [Equation 1] and each said differential equation is supported by a respective pair of surface parameterizations [Equation 2] Based on Each of the differential equations above is [Equation 3] where: DF is a system function [Equation 4] is the derivative of with respect to the parameter t, [Equation 5] {s 1 ,s 2} are each a pair of surface parameterizations, N 1 and N 2 are the normal maps of s 1 and s 2 respectively; (u,v) and (a,b) are parameter combinations of s1 and s2, respectively; R is the radius value, [Equation 6] are the derivatives with respect to t of u, v, a, and b, respectively.
2. Solving each of the differential equations involves solving each of the differential equations with an initial value [Equation 7] This includes integrating from (T1) The method of claim 1.
3. The integration is performed under the following two conditions: (I) The contact sphere intersects with the remaining B-Rep; (II) Reaching a surface boundary. and successive numerical integration steps that generate respective segment portions of respective two-point contact curves until one of the following is evaluated to be satisfied: The method of claim 2.
4. The method includes, at each numerical integration step, a test condition (I) for the osculating sphere to intersect with the remainder of the B-Rep, the test including intersecting a local sphere with the tessellation of the B-Rep, the local sphere having a radius R on the order of but smaller than the radius R. The method of claim 3.
5. If the condition (I) that the osculating sphere intersects with the remainder of the B-Rep is satisfied, the determining step further comprises a step (T2) of solving another respective differential equation based on the B-Rep, the other respective differential equation being based on a respective pair of the surface parameterizations and further including another surface parameterization (s) that supports the intersection. 3 ) based on Each of the other differential equations is [Equation 8] where: DF is an extended system function [Equation 9] with respect to the parameter t*, [Equation 10] s 3 is another surface parameterization, N 3 is the normal map of s 3 , (c, d) are the parameter combinations of each s 3 ; l is, [0011] is the length of the orthogonal projection of the center of a sphere of radius R that is tangent to , onto another surface parameterization (s 3 ) that is intersected by the osculating sphere; [0012] are the derivatives of u, v, a, b, c, d, and l with respect to t* The method according to claim 3 or 4.
6. Solving each of the differential equations above solves the zeros of F. [0013] and the initial values for integrating each of the differential equations are [0014] is given by 6. The method according to any one of claims 2 to 5.
7. The zero finding involves a root finding algorithm on the B-Rep from a pair of starting points on the B-Rep. The method of claim 6.
8. The determining step (S30) tessellating the B-Reps; processing a tessellation, the step including: - Identify one-point contact vertices and non-contact vertices based on radius value Each transition edge defines a transition edge bounded by each one-point touching vertex and each non-touching vertex. setting pairs of starting points based on respective transition edges; Contains The method of claim 7.
9. The setting continues until the root finding algorithm finds the zero. selecting a transition edge; establishing a pair of candidate starting points based on the selected transition edge, optionally including bisecting the selected transition edge; From the pair of candidate starting points, running a root finding algorithm on the B-Rep; This includes repeatedly The method of claim 8.
10. A computer program comprising instructions which, when executed by a processor, cause the processor to carry out the method of any one of claims 1 to 9.
11. A computer-readable medium having recorded thereon the computer program of claim 10.
12. 11. A system comprising a processor coupled to a memory having the computer program of claim 10 recorded thereon, said processor being operated by said computer program.
Citation Information
Patent Citations
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
Parameterizing a 3D modeled object for tessellation
US20140184599A1
B-rep design with face trajectories
US20170220730A1
Forming a dataset for inference of solid CAD features
US20200210636A1