Ejemplo n.º 1
0
/*---------------------------------------------------
 * Time march use Runge-Kutta method
 * ------------------------------------------------*/
void RKtvd3(int ik, double dt)
{
	int nc;
	void flux(double **rhs);
	void fluxchem(double **rhs);
	void updateq(int nc, double **q, double **qs, double **RHS, double dt, int ik);
	void updateqs(int nc, double **q, double **qs, double **RHS, double dt, int ik);
	void chemsource(int nc, double **q, double **qs, double *tem, double **RHS);

	nc = config1.Nc;

	if(config1.gasModel == 0)
	{
		/* Perfect Gas Solver */
	        flux(rhs);
		updateq(nc, U.q, U.qs, rhs, dt, ik);

	}
	else
	{
		/* Real Gas Solver */
		fluxchem(rhs);
		if(config1.reacModel!= 0)
			chemsource(nc, U.q, U.qs, U.tem, rhs);

		updateqs(nc, U.q, U.qs, rhs, dt, ik);
	}

}
Ejemplo n.º 2
0
Archivo: qlrn.c Proyecto: galoissys/qv1
int qlearning(){
	
	/*  Q値の構造体  */
	Qvalue qv, *pqv;
	pqv = &qv;
	
	/*  Q値の初期化   */
	initqvalue(pqv);
	
	printqvalue(pqv);
	
	
	/*  学習の本体  */
	int i=0;
	int s=0;  /*  状態  */
	int t=0;  /*  時刻  */
	
	for(i=0; i < GENMAX; ++i){
		s = 0;
		for(t=0; t < 3; ++t){
			/*  行動選択  */
			s = selecta(s, pqv);
			
			/*  Q値の更新   */
			pqv->qvalue[s] = updateq(s, pqv);
			
		}
		printf("*** Learnnig count = %d ***\n", i);
		printqvalue(pqv);
	}
	
	
	return 0;
}