Порівняйте його з чужим програмним забезпеченням. Запустіть стандартизований тест і з’ясуйте, чи отримаєте ви приблизно таку ж відповідь, як і інші. Якщо ви отримаєте таку ж відповідь, то ймовірність правильного коду є досить високою.
Деякі тести:
Протік повз циліндр. У 2d візьміть прямокутний домен, циліндр посередині, приплив зліва, витік на бій і обчисліть силу на циліндр. Ось еталон порівняння кількох кодів.
Плавучість потоку. Закрита коробка, плита знизу, холодна плита зверху, гаряча рідина починає підніматися через силу плавучості. Ось орієнтир .
Піднімається міхур, орієнтир .
Але, на жаль, порівняння вашого коду з науковими кодами в цих орієнтирах може бути досить важким. Я думаю, ви реалізували щось на зразок SPH або стабільних рідин, які зроблені не для точності, а для стабільності.
Візьмемо для прикладу потік повз циліндра. Я би розпочав випробування з дуже малого числа Рейнольдса, а потім виміряв би силу на циліндр, оскільки ви збільшуєте точність вашого моделювання (нижчий часовий крок, збільшення підрозділу або збільшення кількості частинок). Чи зближується сила до якоїсь кількості? Якщо ні, то у вас виникають проблеми, якщо так, то подивіться на контрольний папір і порівняйте свій результат з іншими.
Цей метод дуже схожий на методику, яку я використовую для тестування свого raytracer. Я просто відтворюю тестову сцену з чужим рендерінгом і порівнюю її з моїм результатом. Чи сходяться вони до одного результату? Якщо так, то я маю це правильно, якщо ні, то я неправильно.