Kod računanja sudara je posebno važno imati dobre algoritme i strukture podataka koji će proces računanja skratiti što je više moguće, a da se pri tome ne izgubi na preciznosti rezultata. Ne želite čekati satima da dobijete rješenje koje možda neće biti zadovoljavajuće. Također se u većini slučajeva očekuje da proces teče glatko i u stvarnom vremenu. U slučaju da gradite strukturu podataka koja bi vam trebala pomoći u ubrzanju procesa ne možete uvijek proces izgradnje posve prepustiti računalu. U nekim slučajevima morate imati mogućnost pregleda i popravke stvorene strukture. Najlakši način za to je grafički ju prikazati i mijenjati.
Na slici je prikazan jednostavan zatvoreni modeltijela koja se sudaraju. Tri tijela kružnog oblika koja se pravocrtno kreću u dvodimenzionom prostoru. Imaju određenu brzinu i smjer. Pri sudaru s drugim tijelom ili zidom slijedi odbijanje prema jednostavnom zakonu odbijanja. Ljudski mozak može na veoma jednostavan način pratiti i predviđati putanje zadanih tijela. Upotreba računala gotovo da nije ni potrebna osim u slučaju preciznih rezultata. Za današnja računala ovakvi jednostavni modeli ne predstavljaju nikakav problem. Sami algoritmi za simulaciju ovog modela su izrazito jednostavni.
Još jedan zatvoreni model prikazan je na slici. Ista situacija kao u prethodnom primjeru no ovaj put s više tijela. Za ljudski mozak već skoro nemoguće praćenje i predviđanje putanja tijela nakon sudara. Ovaj put je upotreba računala neizbježna. Računalo problem rješava na isti način kao i prošli. Situacija se nije promijenila, algoritam je isti. Unesen je samo veći broj varijabli i slijedi veći broj računanja. No, ovo je samo jednostavan primjer.
U današnjoj industriji je izuzetno bitno krenuti od simulacije. Na taj se način mogu izbjeći mnoge pogreške koje bi uzrokovale velike novčane gubitke. Simulacija otkriva pogreške i mane modela, model se ispravlja ili, u najgorem slučaju, radi ispočetka te se ponovno simulira.
Kao konkretan primjer možemo uzeti automobilsku industriju i projektiranje motora. Motor je izrazito složena komponenta bilo kojeg vozila. Sastoji se od mnoštva pokretnih i nepokretnih dijelova. Kroz njega prolaze razne tekućine, od goriva do rashladnih tekućina. Svaka komponenta se može promatrati i simulirati kao zaseban zatvoreni sustav ili kao dio cjeline.
Da bismo bilo koju komponentu mogli simulirati moramo prvo napraviti računalnu aproksimaciju te komponente. Iako dosta ovisi o prirodi problema za kruta tijela će to najčešće biti neka mreža dok će za tekućine biti skup čestica. Da bi simulacija bila što vjerodostojnija, a samim tim i korisna, potreban je velik broj elemenata. To za sobom povlači i velik broj izračuna koje računalo mora obaviti u toku simulacije. Da bi nam simulacija bila korisna simulacija se mora završiti u nekom prihvatljivom konačnom vremenu. S nekim jednostavnim algoritmom koji bi svaki element usporedio sa svim ostalim elementima zbog, naprimjer, utvrđivanja kolizije to nije moguće. Javlja se potreba za boljim i bržim algoritmima te podatkovnim strukturama kao potpori tim algoritmima.
Jednostavan primjer
Na slici je prikazan jednostavan zatvoreni modeltijela koja se sudaraju. Tri tijela kružnog oblika koja se pravocrtno kreću u dvodimenzionom prostoru. Imaju određenu brzinu i smjer. Pri sudaru s drugim tijelom ili zidom slijedi odbijanje prema jednostavnom zakonu odbijanja. Ljudski mozak može na veoma jednostavan način pratiti i predviđati putanje zadanih tijela. Upotreba računala gotovo da nije ni potrebna osim u slučaju preciznih rezultata. Za današnja računala ovakvi jednostavni modeli ne predstavljaju nikakav problem. Sami algoritmi za simulaciju ovog modela su izrazito jednostavni.
Još jedan zatvoreni model prikazan je na slici. Ista situacija kao u prethodnom primjeru no ovaj put s više tijela. Za ljudski mozak već skoro nemoguće praćenje i predviđanje putanja tijela nakon sudara. Ovaj put je upotreba računala neizbježna. Računalo problem rješava na isti način kao i prošli. Situacija se nije promijenila, algoritam je isti. Unesen je samo veći broj varijabli i slijedi veći broj računanja. No, ovo je samo jednostavan primjer.
Stvaran problem
U današnjoj industriji je izuzetno bitno krenuti od simulacije. Na taj se način mogu izbjeći mnoge pogreške koje bi uzrokovale velike novčane gubitke. Simulacija otkriva pogreške i mane modela, model se ispravlja ili, u najgorem slučaju, radi ispočetka te se ponovno simulira.
Kao konkretan primjer možemo uzeti automobilsku industriju i projektiranje motora. Motor je izrazito složena komponenta bilo kojeg vozila. Sastoji se od mnoštva pokretnih i nepokretnih dijelova. Kroz njega prolaze razne tekućine, od goriva do rashladnih tekućina. Svaka komponenta se može promatrati i simulirati kao zaseban zatvoreni sustav ili kao dio cjeline.
Da bismo bilo koju komponentu mogli simulirati moramo prvo napraviti računalnu aproksimaciju te komponente. Iako dosta ovisi o prirodi problema za kruta tijela će to najčešće biti neka mreža dok će za tekućine biti skup čestica. Da bi simulacija bila što vjerodostojnija, a samim tim i korisna, potreban je velik broj elemenata. To za sobom povlači i velik broj izračuna koje računalo mora obaviti u toku simulacije. Da bi nam simulacija bila korisna simulacija se mora završiti u nekom prihvatljivom konačnom vremenu. S nekim jednostavnim algoritmom koji bi svaki element usporedio sa svim ostalim elementima zbog, naprimjer, utvrđivanja kolizije to nije moguće. Javlja se potreba za boljim i bržim algoritmima te podatkovnim strukturama kao potpori tim algoritmima.