Ошибка "выражение должно относиться к целочисленному типа или типу перечисление без области видимости"
Пишу лабораторную работу по молекулярной физике, в задании приведены следующие расчёты, но когда вбиваю всё на C++, вылезает ошибка. Не понимаю, на что он ругается и как это исправить. Ошибка в строчке ""const double UCUT = 4 * EPS * ((SIGMA / RCUT ^ 12) - SIGMA / RCUT ^ 6);" Ругается на первую переменную SIGMA
Весь код:
const double MASS = 66.335; // Масса одной частицы (атома аргона)
const double K_B = 1.380648528; // Постоянная Больцмана
const double EPS = 1.712; // Параметр энергии (глубина потенциальной ямы)
const double SIGMA = 0.3418; // Параметр длины взаимодействия
const double RCUT = 2.5 * SIGMA; // Радиус обрезания потенциала
const double RCUT2 = RCUT * RCUT;
const double UCUT = 4 * EPS * ((SIGMA / RCUT ^ 12) - SIGMA / RCUT ^ 6);
const double ACRIST = 1.0; // Длина ребра эл. ячейки, зависит от от термодинамического
состояния и модели
const double LX = NUMCRIST_X * ACRIST, LY = NUMCRIST_Y * ACRIST, LZ = NUMCRIST_Z *
ACRIST;
const double VOLUME = LX * LY * LZ; // Объём системы'''
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Ругается компилятор на RCUT ^ 12 и RCUT ^ 6 в формуле потенциала Леннарда-Джонса.
Оператор ^ в C++ означает не степень, а побитовую операцию XOR ("исключающее или"), неприменимую к вещественным числам.
Вам понадобится функция pow()