Beispiel #1
0
int staticEvaluation(int** board) {
	int total = 0;
	for(int i = 0; i < DIMENSION; ++i) {
		for(int j = 0; j < DIMENSION; ++j) {
			if(board[i][j]==PLAYER_COLOR)
				total+= staticValues(i,j);
			else if(board[i][j]!=0)
				total-= staticValues(i,j);
		}
	}
	return total;
}
Real NSMomentumPressureWeakStagnationBC::computeQpResidual()
{
  // Compute stagnation values
  Real T_s = 0.0, p_s = 0.0, rho_s = 0.0;
  staticValues(T_s, p_s, rho_s);

  // (p_s * n_k) * phi_i
  return (p_s * _normals[_qp](_component)) * _test[_i][_qp];
}
Real
NSMomentumConvectiveWeakStagnationBC::computeQpResidual()
{
  // Compute stagnation values
  Real T_s = 0.0, p_s = 0.0, rho_s = 0.0;
  staticValues(T_s, p_s, rho_s);

  // The specified flow direction, as a vector
  RealVectorValue s(_sx, _sy, _sz);

  // (rho_s * |u|^2 * s_k * (s.n)) * phi_i
  return (rho_s * this->velmag2() * s(_component) * this->sdotn()) * _test[_i][_qp];
}
Beispiel #4
0
void PopulatorDialog::populateButton_clicked()
{
	// Avoid QVariantList extension because it doesn't work for column names
	// containing special characters
	resultEdit->setHtml("");
	m_columnList.clear();
	for (int i = 0; i < columnTable->rowCount(); ++i)
		m_columnList.append(qobject_cast<PopulatorColumnWidget*>(columnTable->cellWidget(i, 2))->column());

	QList<QVariantList> values;
	foreach (Populator::PopColumn i, m_columnList)
	{
		switch (i.action)
		{
			case Populator::T_AUTO:
				values.append(autoValues(i));
				break;
			case Populator::T_AUTO_FROM:
				values.append(autoFromValues(i));
				break;
			case Populator::T_NUMB:
				values.append(numberValues(i));
				break;
			case Populator::T_TEXT:
				values.append(textValues(i));
				break;
			case Populator::T_PREF:
				values.append(textPrefixedValues(i));
				break;
			case Populator::T_STAT:
				values.append(staticValues(i));
				break;
			case Populator::T_DT_NOW:
			case Populator::T_DT_NOW_UNIX:
			case Populator::T_DT_NOW_JULIAN:
			case Populator::T_DT_RAND:
			case Populator::T_DT_RAND_UNIX:
			case Populator::T_DT_RAND_JULIAN:
				values.append(dateValues(i));
				break;
			case Populator::T_IGNORE:
				break;
		};
	}

	if (!execSql("SAVEPOINT POPULATOR;", tr("Cannot create savepoint")))
	{
		execSql("ROLLBACK TO POPULATOR;", tr("Cannot roll back after error"));
		return;
	}

	qlonglong cntPre, cntPost;
	resultEdit->clear();

	cntPre = tableRowCount();
	QSqlQuery query(QSqlDatabase::database(SESSION_NAME));
	for (int i = 0; i < spinBox->value(); ++i)
	{
		QStringList slr;
		for (int j = 0; j < values.count(); ++j)
		{
			slr.append(Utils::literal(values.at(j).at(i).toString()));
		}
		QString sql = QString("INSERT ")
					  + (constraintBox->isChecked() ? "OR IGNORE" : "")
					  + " INTO "
					  + Utils::quote(m_schema)
					  + "."
					  + Utils::quote(m_table)
					  + " ("
					  + sqlColumns()
					  + ") VALUES ("
					  + slr.join(",")
					  + ");";

		query.prepare(sql);
		if (!query.exec())
		{
			QString errtext = tr("Cannot insert values")
							  + ":<br/><span style=\" color:#ff0000;\">"
							  + query.lastError().text()
							  + "<br/></span>" + tr("using sql statement:")
							  + "<br/><tt>" + sql;
			resultAppend(errtext);
			if (!constraintBox->isChecked()) { break; }
		}
		else { updated = true; }
	}

	if (!execSql("RELEASE POPULATOR;", tr("Cannot release savepoint")))
	{
		if (!execSql("ROLLBACK TO POPULATOR;", tr("Cannot roll back either")))
		{
			resultAppend(tr(
				"Database may be left with a pending savepoint."));
		}
		updated = false;
		return;
	}

	cntPost = tableRowCount();

	if (cntPre != -1 && cntPost != -1)
		resultAppend(tr("Row(s) inserted: %1").arg(cntPost-cntPre));
}