User Tools

Site Tools


libkin:drafts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
libkin:drafts [2026/08/03 17:32] – abclibkin:drafts [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Черновики ====== 
  
-===== Выражения ===== 
-см. //class Expression// 
- 
-Параметры следующих типов: 
-  - константы скоростей элементарных реакций 
-  - другие параметры процесса (температура, энергии активации реакций и т.п.) 
-  - начальные концентрации реагентов (набор стартовых значений переменных в системе дифф.уравнений) 
- 
-Процесс описывается кинетической схемой (см. //class\_Schema//). На этом этапе декларируются имена реагентов, констант скорости элементарных реакций и вспомогательных параметров. 
- 
-Конкретные реализации процесса (для краткости, //варианты//), отличающиеся набором начальных значений концентраций и других констант (//class\_SchemaInstance//) имеют возможность установить значения **всех** параметров. Однако есть возможность в варианте не устанавливать значение параметра; тогда оно будет браться из объявлений в общей схеме (как бы вариант глобальных параметров, или значений по умолчанию). 
- 
-Выражения, которые присваиваются параметрам в качестве их значений, в простейшем случае просто числовые значения. Однако возможно использовать полноценные математические выражения с использованием имён параметров/реагентов.  
- 
-:!: При расчёте кинетики выражения не интерпретируются, а используются соответствующие им объекты предварительной компиляции (//class\_ParsedExpression//), создаваемые при присваивании параметру значения. 
- 
-:!: Если в выражении встречается имя реагента, то при расчёте кинетики процесса (решении СДУ) в вычислениях используются не начальные, а текущие концентрации (меняющиеся во времени).  
- 
-  double SchemaInstance::evaluateParameterValue(const String& name, const ExprEvalContext*); 
-  double Expression::evaluate(const ExprEvalContext*); 
-  double ParsedExpression::evaluate(const ExprEvalContext*); 
- 
-При оценке значения выражения используется вычислительный контекст (//struct\_ExprEvalContext//): 
-  struct ExprEvalContext { 
-   double time; 
-   const double* concentrations; 
-   const SchemaInstance* schemaInstance; 
-  }; 
- 
-Выражения вычисляются в контексте //SchemaInstance//, в контексте //Schema// никогда (возможно только использование значений по-умолчанию из //Schema//((и //SchemaInstance// имеет ссылку на свою родительскую //Schema//))). 
- 
-   
libkin/drafts.1785767579.txt.gz · Last modified: by abc