Главная :: FreeFem++ :: Начало работы в FreeFem++
Plug&Pray

Начало работы в FreeFem++

Где взять FreeFem++? FreeFem++ является свободно распространяемым продуктом (лицензия LGPL) под операционные системы Windows XP и выше, MacOS 10 intel, различные дистрибутивы UNIX OS и GNU Linux (с компилятором g++ 3.3 и позже и библиотекой OpenGL). Также программу можно загрузить в виде исходного кода.

Программа для FreeFem++ представляет обычный текстовый файл. Каждая используемая переменная должна быть объявлена, переменные типизированы (т.е. при объявлении переменной обязательно указывается ее тип), каждое выражение отделяется от другого символом точка с запятой (;). Подстрочные комментарии обозначаются двумя символами дробной черты (//), все что идет после них до конца строки игнорируется.

В приведенных ниже примерах для удобства значения переменных выводятся в консоль с помощью команды C++ вывода в консоль cout, в которой переменные помещаются в поток символами <<, а для перевода на новую строку используется встроенная константа endl.

cout << "test N" << 1 << endl;

Как написать код? Код программы записывается в обычный текстовый файл с расширением .edp, например, test.edp. В ОС Windows можно использовать, например, обычный Блокнот, Notepad++ или Word (но, в этом случае сохранять нужно как обычный текстовый формат txt). В ОС Linux можно использовать, например, vim, gedit, встроенный редактор Krusader, kate. Последний вариант удобен еще и тем, что содержит встроенную консоль для запуска программы.

Как запустить код? В ОС Windows и MacOS код запускается двойным нажатием мыши. В ОС Windows можно запускать в командном процессоре cmd, по аналогии консоли ОС Linux. В ОС Linux исполняется в консоли командой

FreeFem++ test.edp

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

real a = 0.5;
{
  cout << "a = " << a << endl; // a = 0.5
  real a = 1.5, b = 2.0;
  cout << "a = " << a << endl; // a = 1.5
  cout << "b = " << b << endl; // b = 2.0
}
cout << "a = " << a << endl;   // a = 0.5
cout << "b = " << b << endl;   // ошибка, переменной b не существует