//==================================================================
// Code generated automatically
// Description: Partition class header
//==================================================================
#ifndef EP__EPsystem_default_H
#define EP__EPsystem_default_H

#include <INTEG_simula.h>

class EP__EPsystem_default: public INTEG_simula
{
public:

	EP__EPsystem_default(const char *mgr=NULL,const char *dirInstall=NULL,bool dmode=false);
	virtual void copyBack( double dyn[], double ldr[] );
	virtual void initBlocks( double dyn[], double ldr[], double *_time );
	virtual void fres( double *_time, double dyn[], double der[], double res[] );

	virtual void checkAsserts( double *_time);
	virtual void constraints( double *_time, double ev[],double dyn[],double ldr[]);
	virtual void evalWhen(double *_time, bool w[],bool cont[] );
	virtual void executeWhen(double *_time,  int index );
	virtual void evalZones( double *_time,  int branchZone[],bool cont[] );
	virtual INTEG_simula::t_initEvent* initEvents(int& nEvents,int& nWhen,int& nZones,int& nConstraints, const char**& whenTxt,const char**& zoneTxt,int *&zoneTxtIndex);
	virtual void initDelays();
	virtual void initInternalModels();

	virtual void extractSymbols();

	static EP__EPsystem_default* s_current;
public: 
	double Ae6a23018e8eb6ae5d737c9d181606d74(double T,int chem,int ical);
	void Aa84ee00c3c95ab829a927c7afa14e13d(struct INTEG_simula::etype* mix,double x[],double T,double * MW,double * Cp);
	double A51661d9e86455ea0316f81625e9fce54(struct INTEG_simula::etype* mix,double x[],double T);
	void Aeaec98570be1efc7fbb75cbb6e715cd6(struct INTEG_simula::etype* mix,double x_eq[],double T,double * eta_mix,double * lambda_mix);
	void A26bc87d0ba8929c7bde3518fa7dbf74f(int fluid,double P_o,double T_o,double * rho,double * u,double * c,double * qu,double * alpha,double * rho_f,double * rho_g,double * h_f,double * h_g,double * visc,double * cond,int * jx,int * jy,int * ier);
	void A2261e77cb6ba4a6fc25cd22b6256bfba(int fluid,double rho_o,double T_o,double * P,double * u,double * c,double * qu,double * alpha,double * rho_f,double * rho_g,double * h_f,double * h_g,double * visc,double * cond,int * jx,int * jy,int * ier);
	double A0fd502d022009a0b903514fff0d4ec7c(int fluid,double T,int * jy,int * ier);
	double A5d5009412690d2490d4b49130c141ac2(int fluid,double T,double qu,int fprop,int * ier);
	double Af3d7010422c363d543790d0660e62bf3(struct INTEG_simula::etype* mix,double x[]);
	double Af01de3fc59c6a12d6fef25ebc12a0021(int chem,double T);
	double A14acc79e26ff610ce943fded558b863a(int chem,double T);
	double A7946d3620809facf5a526de1a3b5dc2c(int chem,double T);
	double Ad5577fc29943618f69ad5c843eba833c(double x,double y);
	double A900ac6b073dbbc9395688aa56d394f3d(struct INTEG_simula::etype* mix,double x[],double T,double v,int fluid_prop);
	double A7625727b45f33d86ffab92283f722b41(struct INTEG_simula::etype* mix,double x[]);
	double A1b182e61facaf86869b3d0cbc0077d78(struct INTEG_simula::etype* mix,double x[]);
	double A717555152a128e4c2db369d8b3dc1beb(struct INTEG_simula::etype* mix,double x[],double rho,double T,int fprop,int * ier);
	double A6669030322409227cc20314f5739b5c2(struct INTEG_simula::etype* mix,double x[],double P,double T,int fprop,double * rho,int * ier);
	double Affa307f0da73ee12e8c657f49cd5c2b5(struct INTEG_simula::etype* mix,double x[],double T);
	double Aa5cb7549104896f696616fb0442b4848(struct INTEG_simula::etype* mix,double x[],double T,double P);
	double A564e20074c3f8ffd31cb21d91144caee(struct INTEG_simula::etype* mix,double x[],double T);
	double Ae8a0ac1b3e6c9d0daf2c1477821fa807(struct INTEG_simula::etype* mix,double x[],double T);
	double A199d18e0806ac2c34de831af64e94147(struct INTEG_simula::etype* mix,double x[],double P,double T,int fprop,int * ier);
	double Ad9d4db5bf62c7ee749b3d001cbe1f379(struct INTEG_simula::etype* mix,double x[],int fluid,double P,double T,int fprop,int * ier);
	void Ac801e03fee227f3b95c9edc11faa6ea4(int fluid,double T,double qu,double * P,double * rho,double * u,double * c,double * alpha,double * rho_f,double * rho_g,double * h_f,double * h_g,double * visc,double * cond,int * jx,int * jy,int * ier);
	void Abd0cf2de98e1e1f8a80bdef1119cb7fa(int fluid,double P,double qu,double * T,double * rho,double * u,double * c,double * alpha,double * rho_f,double * rho_g,double * h_f,double * h_g,double * visc,double * cond,int * jx,int * jy,int * ier);
	double A6e1f457b2f00c9d7486b29da455bd931(int fluid,double rho,double T,int fprop,int * ier);
	void Ae8dcac04355b7929caae5c4efed3ad7b(struct INTEG_simula::etype* mix,double xp[],int fluid,int fluid_nc,int init_flag,double x_nco,double P_o,double T_o,double x_o,double rho_o,double * P,double * P_nc,double * x_nc,double * u,double * T,double * rho,double * c,double * qu,double * alpha,double * visc,double * cond,int * jx,int * jy,int * ier);
	double Adfa33bda75208049874ee3ad97974713(int fluid,int fprop,int * ier);
	double A22c1adc231b377ecd584fbb6cfaefff6(double x,double y);
	double Aed64542d622c36acbe0681ac43b0f786(int fluid,double P,double rho,double T,double P_nc,double v,double vsound,int * ier);
	double A3f3d662a9e7edeee86fcf73966fa969c(double flow,double upstream_prop,double downstream_prop);
	int A70cc6b29de1c2b1f2003db9666acb8b9(int FailureName);
	int A513ad26e1f4f8bd583076b41541d6b46(int Mode);

void fbox2(double *_time,double dyn[],double ldr[],double res[]);
static void fcn2(int *n, double x[], double residues[], int *iflag);
void fhyb2(double dyn[], double ldr[], double tol, int n, int itmax);
};
#endif
