Могу дать ответ исходя из личного опыта. Бывает необходимо производить целые расчеты и моделирование физических, химических процессов. А, например, программного обеспечения для Ваших целей нет. Что же тогда? Писать целую программу "от" и "до" с нуля? Чаще всего свободное программное обеспечение имеет открытый код. И наиболее близкую программу можно "дописать" или создать для нее подпрограмму для решения конкретной задачи. А потом поделиться результатом.
Например, свободное ПО Abinit - предназначенное для расчётов полной энергии, электронной плотности и т. д. систем электронов и ядер (с использованием периодических граничных условий) в рамках метода функционала плотности с использованием базиса из плоских волн и псевдопотенциалов.
Если просматривать ее версии, то первые версии были менее функциональны, а сейчас существует множество утилит, написанные РАЗНЫМИ разработчиками.
Так вот - главная цель свободного программного обеспечения - взаимовыгода. Ведь чем больше людей примет участие в проекте - тем более обширным и мощным станет продукт.