Я стараюсь сделать это коротко. У меня возникла задача численного моделирования потока в газовой трубе. Я моделирую, используя разные модели для воздушного потока (уравнения переноса), движущегося от одной границы к другой (т.е. справа налево). Вопрос в том, что, поскольку я использую разные модели для представления указанного потока газа и граничных условий, у меня есть много таких функций, как:
boundary_left_model_1
boundary_right_model_1
boundary_left_model_2
boundary_right_model_2
boundary_left_model_2b
boundary_right_model_2b
....
flux_model_1
flux_model_2
....
source_model_1
source_model_2
.....
Я выделяю нужную функцию перед числовой схемой с помощью (например):
boundary_left = @[needed function];
boundary_right=@ [needed function];
flux = @[needed function];
source=@ [needed function];
Далее следует что-то вроде:
Solution = numerical_scheme_#1(boundary_left,boundary_right,flux,source,parameters);
вы поняли суть.
Теперь, как наиболее эффективно (при структурировании) построить программу? Насколько я могу судить, у меня есть три варианта:
1) Я определяю каждую функцию в файле функции Matlab (в результате будет много файлов)
2) Я определяю каждую функцию в скрипте для числовой схемы (в результате получится длинный файл, который менее понятен для настройки / чтения)
3) Я создаю класс для граничных условий с методами, содержащими все модели, один класс для потоков и источники, содержащие соответствующие функции. В моем распределении функций для числовой схемы я затем вызываю нужные мне методы. (кажется сложным и неэффективным, не уверен в том, сколько времени необходимо для вызова методов в Matlab, но для меня это наиболее структурированный способ)
Я должен, вероятно, отметить, что я относительно новичок в Matlab и численном моделировании (студент), и я также спрашиваю, как обычно решаются такие проблемы. Заранее спасибо! Также в качестве бонуса: если кто-то увлекается практическим моделированием систем PDE с помощью Matlab - у меня возникли вопросы типа «Как выбрать числовую схему - какие критерии следует учитывать?»
Еще раз спасибо, желаю всем приятного дня!