{'fraction_non_alphanumeric': 0.026049738026713894, 'fraction_numerical': 0.010700317319755, 'mean_word_length': 4.708508845829823, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Deformation of 3D Object of Human Body Internal Organs Using Finite Element Method Approach Accelerated by GPU

Few years ago, there are some research or publication about 3D simulation especially virtual surgery that still continuous growing, that is 3D deformable object. The 3D deformable object resembles or mimic some object. The purpose of the research is to continue or add previous research especially in term of deformable 3D object by using OpenGL and as well as startup especially in Indonesia in term of soft body simulation. To make object deform, one of the numeric approach methods would be used i.e. Finite Element Method. this approach is quite common or used by another researchers because it is stable, detail, but also quite heavy in modelling some objects. This approach would implement by using OpenGL GPU-based with eight kernels or functions. Result of this research show that this simulation of 3D of human body internal organs object produces the good FPS of simulation with 3.07 times faster rather than not using GPU.


INTRODUCTION
Another scientific fields like the medical field, using computers in their daily activity. A Simulator will be used by surgeons or other to skillful expertise and a surgeon to practice their ability before doing the actual patient. The simulator modeled on human organs body that resembles the original internal body organs, like liver, heart, lungs, pairs of kidneys, two eyes, teeth, and so on.
By using simulator, they can perform some variety of things like the interaction of touching the object being simulated, perform collision between two objects, slicing or cutting objects. Interaction with objects usually using haptic or controllers like razer hydra.
Today there have been some virtual simulator for doing surgery such as da Vinci Surgical System. Price is little expensive approximately 1,75 million USD according to [1] and [2] so that not all of many hospitals would be able to buy. it is important to have some breakthroughs to create or design some simulators that have fine quality with affordable price so that some hospitals or medical schools can have it so simulator can be useful.
Creating and designing a simulator with affordable price, has been done in previous studies, namely by [3] and [4], simulated 3D objects by using application of game engine like Unity and razer hydra act as controller with affordable price, while [3] would continue such that research into a deformation of 3D objects and cutting objects 3D simulation.
Seeing two studies that have been there before, this research can continue and improve the research, especially research conducted by [3] in terms of deformation of 3D objects and implementation if the simulated organs in the human body. Thus, this paper is only show and explain on deformation of the 3D object.
There have been two previous research related to this current research they are following:

Robotic Surgery Simulation with Low-Cost
Simulation of surgical robots already existed before, but the price is still quite expensive so the research in [3] makes and designs an application with some interactions that could be reached with affordable price. The main purpose of application is conducted by [3] which is with a low cost budget, it could effectively simulate the control of an existing robot of surgical. Applications are made by [3] using applications that version of the game engine like unity and Razer Hydra as controller.
This research would use Razer Hydra controller with two controllers on right and left side, laptop, and software game engine like Unity. the application is made by [3] used two virtual arms as a clamp.
All Scene at unity game engine made by [3] includes some important models, as follows: • Robot Arms or virtual arms have been equipped by clamp or pincer.
• The beads as the object moved.
• Board and pegboard that act as the attachment of beads.

Cutting in Deformable Bodies
To mimic a virtual surgical simulator, [3] create a module, which cutting 3D objects that have properties of deformation or deformation. Cutting an objects in field of virtual surgery simulation is very important features [5] because almost from the surgery requires cutting process.
In this cutting 3D objects, [4] continues to research conducted by [3] by adding features objects on the object deformation cuts a 3D object. In this study, the algorithm used is spring mass Method for deformation, and for creating the object on surface side into a volume mesh are used Delaunay Algorithm Tetrahedralization through TetGen applications that integrate with the Game Engine.
In research in [5] add some additional arms that act to cut the 3D object so that the user interface of the application is similar with research made by [5] it is just robot arms that is left side to hold the object to be cut or grabbing, right side acting as a cutter. On Unity scene there is an object that has box-shaped deformation properties. Implementation made by [5] using tools like Razer Hydra as a controller, Unity Game Engine as its application, and one personal computer. In this application only some cubical box objects are simulated use two robotic arms.
Before simulate 3D object, we need a file named surface mesh converted into volumetric mesh. File types would be used, namely obj file or stl file. An integration between softawre named TetGen [6] with some software, TetGen functions of the application itself, which is to make the input surface mesh into a volumetric mesh using Delaunay Tetrahedralization Algorithm.

METHOD
There are many approach methods that had been implemented by many researchers. According to [7] there are four common methodologies for deformable modelling. The deformable object can be modeled by using the physically based model which defines the behavior of model from mathematical equations and laws of physics [8]. In the previous research, [4] use Spring Mass system as the approach method and in this research Finite Element Method Approach would be used. On the other hand, FEM is powerful, highly efficient, and versatile numerical [9].

Mass Spring System
It is one method to create and design 3D objects. It is quite simple compared with other methods like the Finite Element Method. In the Spring-Mass method, edges on each tetrahedral act as Spring. Each vertex of tetrahedral mass. One tetrahedral has four vertices, each vertex relates to other tetrahedral. So that each vertex can be influenced by the style of the vertices of the other tetrahedral.
In a study conducted by [4] Spring-Mas system they pleased to be a style that is obtained from each vertex then summed back in style at one vertex or thereafter referred to as Spring Neighbor. The goal is improving the stability of the geometry of mesh and to prevent instability of the structure geometry. Neighbor Spring can also be integrated with the force of gravity. Without a Neighbor's Spring, mesh would collapse because of the mass of the mesh itself.

Finite Element Method (Will be used)
This method is numerical technique for solving problems. It is described by partial differential equations or formulated as functional minimization according to [10] According to [11] the entire step of deformable object by using FEM as follow: Figure 1 Entire Simulation of FEM [10] In order to simulate an object, mimic the original shape, need to be added some of elastic and plastic force as mentioned in [12] and [13] beside external force as depicture on [10]. Until now, FEM is still undergoing further research like in [14] Advances in Engineering Research,volume 196 Different from Mass Spring System, Finite Element Method have an objective is to get the last velocity of each node. After getting it, it should be adding to the function of time integration method that would be explained later.
As mention on [15], [10], [13], [12], and [10]. The external force is governed by this equation: M is global mass matrix, D is damping matrix, K is the stiffness matrix, u is displacement vector of each node, finally 1st and 2nd derivate from u are velocity and acceleration, respectively. Where symbol D = αM + βK.
Stiffness matrix symbolled with symbol K from Ke that from entire element or tetrahedral in mesh object. The formula of Ke = Ve BeT C Be. Ke is stiffness matrix that have ordo 12x12.
Following is the explanation how to get Ve, Be, and C. C is called the material matrix, Be is called strain matrix which is constant and can be precomputed, and Ve is called volume of tetrahedral. Symbol E is elasticity modulus, therefore symbol ν for Poisson's ratio. (2) Here E is the elasticity modulus and ν is the Poisson's ratio. According to [12], the following are all algorithm to simulate deformable object:

Method of Integration Time)
The dynamic system is aims to integrate over time domain to simulate the deformation. This could be done by many explicit or implicit time integration. Previous research that had been conducted by [4] is using verlet solver. The verlet solver is governed by this equation: Research on [16] and [15] use Implicit Euler form of Finite Element Method as follow: (M + ∆tC + ∆t 2 K) v j+1 = Mvj -∆t(Kx j +f0+ fplastic-fext) (9) In this simulation we would modify a numerical integration method as follow so that it would be easy to implement in programming CUDA kernel.

FEM Calculation Process Using GPU
For heavy calculation processes such as matrix operations that have large orders of up to thousands, parallel programming is required. For parallel programming CUDA is used to do parallel programming using Graphics devices from NVIDIA and as references from [17]. The GPU calculation process is found in the process of calculating numerical integration methods and the process of finding solutions to the numerical integration equation because this process is quite heavy when run on the CPU.
We created eight kernels running on GPU. They are is a breakdown of equation 13 described as follows:

Kernel_Computegravityforce
This kernel functions to calculate the force of gravity. In this case, the gravitational force functions as an

Kernel_Force_Mul_Deltatime
This kernel functions to calculate the multiplication process between external force vectors and delta time in the form of scalar vectors.

Kernel_Massa_Mul_Velocity
This kernel functions to calculate the multiplication process between mass vectors and velocity vectors.

Kernel_Displacement_Mul_Stiff
This kernel functions to calculate the multiplication process between the kernel transfer and matrix stiffness.

Kernel_Add_Right_Side
This kernel functions to calculate the summing process of kernel_force_mul_deltatime, kernel_massa_mul_velocity, and kernel_displacement_mul_stiff.

Kernel_New_U
This kernel functions to calculate and store new displacement vector values for later use in the next time step.

Kernel_Set_Zero_Force
This kernel functions to calculate the value of the force vector to make it 0.

RESULT AND DISCUSSION
Before running simulation there are parameters that must be set to default as show on Table 1.  Research,volume 196 In this simulation the value of alpha, acceleration of gravity, and DOF remain unchanged, while the other values are adjusted to the object to be simulated. Young Modulus value is greater, the object would be more rigid. The value of the spring force and the damper force are adjusted to the object to be simulated because these two variables function when the object hits the floor.
The following is a table that displays some results of performance of the approach with the Finite Element Method by using OpenGL. As we can see on table 2, we tested six number the three of dimension object. The Speed stated as (Frame Per Second) or FPS in m/s. It shown that using GPU faster than using CPU. It is because the eight kernels work well as planned.
The following are the results of a three-dimensional object simulation using OpenGL C++ on GPU CUDA v.7.5: Figure 11 3D Object Using OpenGL and GPU Performance in terms of speed, this Finite Element Method approach shows a low FPS, but when compared to previous methods such as Spring Mass shows better visualization. When the vertex and tetrahedron values of the object increases, the FPS speed would decrease. The simulation video as a whole, can be seen on YouTube with a link as follow: https://www.youtube.com/channel/UCHJh62OUKoC2F XR4QeAD5gw.
Removing the gravitational force would make the object float. The object is dropped at a certain height and would hit the floor. In addition the object is also given a constraint at certain points so that the object would not move anywhere. For collisions with the floor, the spring and damper methods are used. So when the object has hit or through the floor, the spring and damper forces would apply. To make an object not move at a certain point is to make the force at that point zero and the stiffness matrix at that point zero.

CONCLUSION
The results obtained by using Finite Element Method that running on NVDIA GEFORCE 840M are more visible objects, if the average CPU FPS is around 10-20 FPS, while on the GPU ranges between 58-60 FPS. Object Rectangle is 2.27 faster; Object Liver is 4.90 faster; Object Kidney is 4.45 faster; Object Lungs is 3.00 faster; Object Stomach is 1.95 faster; Object a pair of kidneys is 1.90 faster; the Average is 3.07 times faster. Running on GPU is faster than running on CPU. It is because every vertex is computed on the same time and the eight kernel works well. Thus, programming with the GPU is one solution.