Я хочу создать функцию на основе LineaValueSampler (VectorPostProcessor), но анализируемую на постпроцессоре в MOOSE. В частности, из LineaValueSampler я получаю на выходе [переменную][id][x][y][z] в файле .csv для каждой итерации. Меня интересует передача этих результатов из LineaValueSampler (VectoPostProcessor) в PostProcessor в одном файле .csv. В этом постпроцессоре я хотел бы взять определенное значение [переменной], а затем сравнить его с порогом. Если разница между
[variable]-threshold < tolerance --> I save this value.
Есть ли у вас предложения по решению этой проблемы? Спасибо за ваше терпение. Ниже есть .h и .C, в которых я представляю эту идею. Вы можете мне помочь?
neckvalue.h:
#ifndef NECKVALUE_H
#define NECKVALUE_H
#include "GeneralPostprocessor.h"
class neckvalue : public GeneralPostprocessor
{
public:
neckvalue(const InputParameters & parameters);
static InputParameters validParams();
Real calculateValue();
protected:
std::vector _c_var;
const Real _threshold;
const Real _tolerance;
};
#endif
neckvalue.cpp:
#include "neckvalue.h"
registerMooseObject("ParrotApp", neckvalue);
InputParameters
neckvalue::validParams()
{
InputParameters params = GeneralPostprocessor::validParams();
params.addRequiredParam("threshold", "Seconda variabile");
params.addRequiredParam("tolerance", "Terza variabile");
return params;
}
neckvalue::neckvalue(
const InputParameters ¶meters)
: GeneralPostprocessor(parameters),
_threshold(getParam("threshold")),
_tolerance(getParam("tolerance")),
_c_var(getParam("c_var"))
{}
Real neckvalue::calculateValue() {
Real value = 0.0;
const VectorPostprocessorValue &values = (getVectorPostprocessorValue("NeckLineValueSampler","value"));
std::vector c_var = values;
for (unsigned int i = 0; i < 100; i++)
{
if (std::abs(_c_var - _threshold) < _tolerance)
{
value = c_var;
}
}
return value;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -a-postpro
В MOOSE я хочу передать LineValueSampler из VectorPostProcessor в PostProcessor. ⇐ C++
Программы на C++. Форум разработчиков
1728818453
Anonymous
Я хочу создать функцию на основе LineaValueSampler (VectorPostProcessor), но анализируемую на постпроцессоре в MOOSE. В частности, из LineaValueSampler я получаю на выходе [переменную][id][x][y][z] в файле .csv для каждой итерации. Меня интересует передача этих результатов из LineaValueSampler (VectoPostProcessor) в PostProcessor в одном файле .csv. В этом постпроцессоре я хотел бы взять определенное значение [переменной], а затем сравнить его с порогом. Если разница между
[variable]-threshold < tolerance --> I save this value.
Есть ли у вас предложения по решению этой проблемы? Спасибо за ваше терпение. Ниже есть .h и .C, в которых я представляю эту идею. Вы можете мне помочь?
neckvalue.h:
#ifndef NECKVALUE_H
#define NECKVALUE_H
#include "GeneralPostprocessor.h"
class neckvalue : public GeneralPostprocessor
{
public:
neckvalue(const InputParameters & parameters);
static InputParameters validParams();
Real calculateValue();
protected:
std::vector _c_var;
const Real _threshold;
const Real _tolerance;
};
#endif
neckvalue.cpp:
#include "neckvalue.h"
registerMooseObject("ParrotApp", neckvalue);
InputParameters
neckvalue::validParams()
{
InputParameters params = GeneralPostprocessor::validParams();
params.addRequiredParam("threshold", "Seconda variabile");
params.addRequiredParam("tolerance", "Terza variabile");
return params;
}
neckvalue::neckvalue(
const InputParameters ¶meters)
: GeneralPostprocessor(parameters),
_threshold(getParam("threshold")),
_tolerance(getParam("tolerance")),
_c_var(getParam("c_var"))
{}
Real neckvalue::calculateValue() {
Real value = 0.0;
const VectorPostprocessorValue &values = (getVectorPostprocessorValue("NeckLineValueSampler","value"));
std::vector c_var = values;
for (unsigned int i = 0; i < 100; i++)
{
if (std::abs(_c_var[i] - _threshold) < _tolerance)
{
value = c_var[i];
}
}
return value;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79082994/in-moose-i-want-to-pass-linevaluesampler-from-a-vectorpostprocessor-to-a-postpro[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия