2015-02-05 2 views
-3

В настоящее время я пытаюсь оптимизировать программу, написанную на C++. Это моделирование методом конечных элементов произвольных систем электростатики с использованием пользовательских граничных условий.Защитный элемент массива?

Он работает, но для сохранения граничных условий, которые могут быть произвольными формами, я постоянно переписываю эти элементы в начале каждого цикла.

В интересах - возможно, улучшения времени вычисления и краткости кода, я хотел бы установить эти элементы один раз и защитить их. Все, что мне удалось найти, - это как инициализировать весь массив констант, а не отдельные защищенные элементы.

Возможно ли это на C++ или есть библиотеки, которые позволили бы это сделать?

+3

Оберните массив в класс и предоставите функцию 'const' getter. –

+0

Я не вижу, как это могло бы улучшить время вычисления или краткость кода. –

+0

На данный момент я запускаю цикл для записи граничных условий, которые могут быть произвольными фигурами внутри массива, а не только значениями по краям. Затем я запускаю строку за строкой и вычисляю значения для каждого элемента с помощью FEM. Я предполагал, что не нужно запускать цикл граничных значений для каждой итерации, чтобы сэкономить время. Может быть, я ошибаюсь. – Stephen

ответ

0

Самое простое решение - не перебирать эти элементы в вашей функции обновления. Если у вас есть int x[10] с граничными условиями x[0]=x[9]=0, просто обновите x[1] до x[8].

Смежные вопросы