本文整理汇总了C++中hermes::vector::at方法的典型用法代码示例。如果您正苦于以下问题:C++ vector::at方法的具体用法?C++ vector::at怎么用?C++ vector::at使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类hermes::vector
的用法示例。
在下文中一共展示了vector::at方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: source_fn
// Source function.
void source_fn(int n, Hermes::vector<scalar*> values, scalar* out)
{
for (int i = 0; i < n; i++)
{
out[i] = (nu[1][0] * Sf[1][0] * values.at(0)[i] +
nu[1][1] * Sf[1][1] * values.at(1)[i] +
nu[1][2] * Sf[1][2] * values.at(2)[i] +
nu[1][3] * Sf[1][3] * values.at(3)[i]);
}
}
示例2: filter_fn
void CustomFilterDt::filter_fn(int n, Hermes::vector<double*> values, Hermes::vector<double*> dx, Hermes::vector<double*> dy,
double* out, double* outdx, double* outdy)
{
for (int i = 0; i < n; i++)
{
double t1 = std::max(values.at(0)[i],0.0) - 1.0;
double t2 = t1 * beta;
double t3 = 1.0 + t1 * alpha;
double t4 = sqr(beta) / (2.0*Le) * exp(t2 / t3);
double t5 = (beta / (t3 * t3));
out[i] = t4 * t5 * values.at(1)[i];
outdx[i] = 0.0;
outdy[i] = 0.0; // not important
}
}
示例3: omega_dt_fn
void omega_dt_fn(int n, Hermes::vector<scalar*> values, Hermes::vector<scalar*> dx, Hermes::vector<scalar*> dy,
scalar* out, scalar* outdx, scalar* outdy)
{
for (int i = 0; i < n; i++)
{
scalar t1 = std::max(values.at(0)[i],0.0) - 1.0;
scalar t2 = t1 * beta;
scalar t3 = 1.0 + t1 * alpha;
scalar t4 = sqr(beta) / (2.0*Le) * exp(t2 / t3);
scalar t5 = (beta / (t3 * t3));
out[i] = t4 * t5 * values.at(1)[i];
outdx[i] = 0.0;
outdy[i] = 0.0; // not important
}
}
示例4: filter_fn
void filter_fn(int n, Hermes::vector<scalar*> values, scalar* result)
{
for (int i = 0; i < n; i++) {
result[i] = 0;
for (unsigned int j = 0; j < values.size(); j++)
result[i] += nu[j] * Sigma_f[j] * values.at(j)[i];
}
}
示例5: source_fn
/// Fission source function.
inline void source_fn(int n, Hermes::vector<scalar*> values, scalar* out)
{
for (int i = 0; i < n; i++) {
out[i] = 0.0;
for_each_group(g)
out[i] += nu[1][g] * Sf[1][g] * values.at(g)[i];
}
}
示例6:
void Filter<Scalar>::init(Hermes::vector<MeshFunctionSharedPtr<Scalar> > solutions)
{
this->num = solutions.size();
if(num > H2D_MAX_COMPONENTS)
throw Hermes::Exceptions::Exception("Attempt to create an instance of Filter with more than 10 MeshFunctions.");
for(int i = 0; i < this->num; i++)
this->sln[i] = solutions.at(i);
this->init();
}
示例7:
void Filter<Scalar>::init(const Hermes::vector<MeshFunction<Scalar>*>& solutions)
{
this->num = solutions.size();
if(num > 10)
throw Hermes::Exceptions::Exception("Attempt to create an instance of Filter with more than 10 MeshFunctions.");
for(int i = 0; i < this->num; i++)
this->sln[i] = solutions.at(i);
this->init();
}
示例8: init
void Filter::init(Hermes::vector<MeshFunction*> solutions)
{
this->num = solutions.size();
if(num > 10)
error("Attempt to create an instance of Filter with more than 10 MeshFunctions.");
for(int i = 0; i < this->num; i++)
this->sln[i] = solutions.at(i);
this->init();
}
示例9: error
SimpleFilter<Scalar>::SimpleFilter(const Hermes::vector<Solution<Scalar>*>& solutions, const Hermes::vector<int>& items)
{
this->num = solutions.size();
if(this->num > 10)
error("Attempt to create an instance of Filter with more than 10 MeshFunctions.");
if(items.size() != (unsigned) this->num)
if(items.size() > 0)
error("Attempt to create an instance of SimpleFilter with different supplied number of MeshFunctions than the number of types of data used from them.");
for(int i = 0; i < this->num; i++)
{
this->sln[i] = solutions.at(i);
if(items.size() > 0)
this->item[i] = items.at(i);
else
this->item[i] = H2D_FN_VAL;
}
this->init();
init_components();
}
示例10:
SimpleFilter::SimpleFilter(void (*filter_fn)(int n, Hermes::vector<scalar*> values, scalar* result),
Hermes::vector<MeshFunction*> solutions, Hermes::vector<int> items) : filter_fn(filter_fn)
{
this->num = solutions.size();
if(num > 10)
error("Attempt to create an instance of Filter with more than 10 MeshFunctions.");
if(items.size() != (unsigned) num)
if(items.size() > 0)
error("Attempt to create an instance of SimpleFilter with different supplied number of MeshFunctions than the number of types of data used from them.");
for(int i = 0; i < this->num; i++)
{
this->sln[i] = solutions.at(i);
if(items.size() > 0)
this->item[i] = items.at(i);
else
this->item[i] = H2D_FN_VAL;
}
this->init();
init_components();
}
示例11: filter_fn
void CustomFilter::filter_fn(int n, double* x, double* y, Hermes::vector<double*> values, Hermes::vector<double*> dx, Hermes::vector<double*> dy,
double* out, double* outdx, double* outdy)
{
for (int i = 0; i < n; i++)
{
double t1 = std::max(values.at(0)[i],0.0) - 1.0;
double t2 = t1 * beta;
double t3 = 1.0 + t1 * alpha;
double t4 = sqr(beta) / (2.0*Le) * exp(t2 / t3);
double t5 = (beta / (t3 * t3)) * values.at(1)[i];
out[i] = t4 * values.at(1)[i];
outdx[i] = t4 * (dx.at(1)[i] + dx.at(0)[i] * t5);
outdy[i] = t4 * (dy.at(1)[i] + dy.at(0)[i] * t5);
}
}
示例12: calc_entropy_estimate_func
// Filter for entropy which uses the constants defined above.
static void calc_entropy_estimate_func(int n, Hermes::vector<scalar*> scalars, scalar* result)
{
for (int i = 0; i < n; i++)
result[i] = std::log((calc_pressure(scalars.at(0)[i], scalars.at(1)[i], scalars.at(2)[i], scalars.at(3)[i]) / P_EXT)
/ pow((scalars.at(0)[i] / RHO_EXT), KAPPA));
};
示例13: adaptivity
QList<SolutionArray *> SolutionAgros::solveSolutioArray(Hermes::vector<EssentialBCs> bcs)
{
QTime time;
// solution agros array
QList<SolutionArray *> solutionArrayList;
// load the mesh file
mesh = readMeshFromFile(tempProblemFileName() + ".mesh");
refineMesh(mesh, true, true);
// create an H1 space
Hermes::vector<Space *> space;
// create hermes solution array
Hermes::vector<Solution *> solution;
// create reference solution
Hermes::vector<Solution *> solutionReference;
// projection norms
Hermes::vector<ProjNormType> projNormType;
// prepare selector
Hermes::vector<RefinementSelectors::Selector *> selector;
// error marker
bool isError = false;
RefinementSelectors::Selector *select = NULL;
switch (adaptivityType)
{
case AdaptivityType_H:
select = new RefinementSelectors::HOnlySelector();
break;
case AdaptivityType_P:
select = new RefinementSelectors::H1ProjBasedSelector(RefinementSelectors::H2D_P_ANISO,
Util::config()->convExp,
H2DRS_DEFAULT_ORDER);
break;
case AdaptivityType_HP:
select = new RefinementSelectors::H1ProjBasedSelector(RefinementSelectors::H2D_HP_ANISO,
Util::config()->convExp,
H2DRS_DEFAULT_ORDER);
break;
}
for (int i = 0; i < numberOfSolution; i++)
{
space.push_back(new H1Space(mesh, &bcs[i], polynomialOrder));
// set order by element
for (int j = 0; j < Util::scene()->labels.count(); j++)
if (Util::scene()->labels[j]->material != Util::scene()->materials[0])
space.at(i)->set_uniform_order(Util::scene()->labels[j]->polynomialOrder > 0 ? Util::scene()->labels[j]->polynomialOrder : polynomialOrder,
QString::number(j).toStdString());
// solution agros array
solution.push_back(new Solution());
if (adaptivityType != AdaptivityType_None)
{
// add norm
projNormType.push_back(Util::config()->projNormType);
// add refinement selector
selector.push_back(select);
// reference solution
solutionReference.push_back(new Solution());
}
}
// check for DOFs
if (Space::get_num_dofs(space) == 0)
{
m_progressItemSolve->emitMessage(QObject::tr("DOF is zero"), true);
}
else
{
for (int i = 0; i < numberOfSolution; i++)
{
// transient
if (analysisType == AnalysisType_Transient)
{
// constant initial solution
solution.at(i)->set_const(mesh, initialCondition);
solutionArrayList.append(solutionArray(solution.at(i)));
}
// nonlinear
if ((linearityType != LinearityType_Linear) && (analysisType != AnalysisType_Transient))
{
solution.at(i)->set_const(mesh, 0.0);
}
}
actualTime = 0.0;
// update time function
Util::scene()->problemInfo()->hermes()->updateTimeFunctions(actualTime);
m_wf->set_current_time(actualTime);
m_wf->solution = solution;
//.........这里部分代码省略.........