예제 #1
0
int		main(int argc, char **argv)
{
	t_env	e;
	int		fd;

	set_variables(&e);
	if (argc == 2)
	{
		fd = open(argv[1], O_RDONLY);
		if (fd == -1)
		{
			perror(argv[1]);
			exit(0);
		}
		get_tab(fd, &e);
		e.mlx = mlx_init();
		if (e.mlx == NULL)
			exit(0);
		e.win = mlx_new_window(e.mlx, 1500, 1200, "42");
		mlx_key_hook(e.win, key_hook, &e);
		mlx_expose_hook(e.win, expose_hook, &e);
		mlx_loop(e.mlx);
	}
	else
		write(1, "usage : ./fdf file_name\n", 24);
	return (0);
}
예제 #2
0
void writer::stream(const std::vector<std::string> &output_vec)
{
    set_variables();
    std::ofstream output(path, file_mode);
    for (auto string_out: output_vec)
    {
        write(string_out, output);
    }
}
int main(int argc, char **argv){
	initialize mpi(argc,argv);
	create_control_variables(ctrl);
	if(ctrl.parse_runtime_params(argc, argv)==success){
		set_variables(ctrl);
		simulate_RT(Ez,res);
	}
	return 0;
}
예제 #4
0
파일: scopsowl.C 프로젝트: lyonkl/dgosprey
//Default Film Mass Transfer
double default_filmMassTransfer(int i, const void *user_data)
{
	int success = 0;
	SCOPSOWL_DATA *dat = (SCOPSOWL_DATA *) user_data;
	if (dat->gas_dat != NULL)
	{
		success = set_variables(dat->magpie_dat.sys_dat.PT, dat->magpie_dat.sys_dat.T, dat->gas_velocity, dat->pellet_radius, dat->y, dat->gas_dat);
		if (success != 0) {mError(simulation_fail); return -1;}
		//Calculate Properties
		success = calculate_properties(dat->gas_dat);
		if (success != 0) {mError(simulation_fail); return -1;}
		return FilmMTCoeff(dat->gas_dat->species_dat[i].molecular_diffusion, dat->gas_dat->char_length, dat->gas_dat->Reynolds, dat->gas_dat->species_dat[i].Schmidt) * 3600.0;
	}
	else
	{
		std::cout << "\nWARNING!!! Calling a Function without the correct pointer initialized!\n" << std::endl;
		return default_kf(i, user_data); //This will return 0.0 and result in errors
	}
}
예제 #5
0
파일: simplex.c 프로젝트: marso329/courses
bool simplex_phase_1(problem* prob){
  /* Slack and virtual variable sets */  
  work_set* virtual_vars = work_set_create(prob->equality_count+prob->inequality_count);

  neg_equality(prob, virtual_vars);

  matrix* Fr = NULL;
  matrix* gr = NULL;
  convert_geq_to_leq(prob, virtual_vars, &Fr, &gr);

  matrix* Ft = split_ineq_variables(prob, Fr);
  free_matrix(Fr);

  matrix* Et = split_eq_variables(prob);

  /* Create tableau. +1 rows for objective function, +1 columns for RHS. */
  matrix* tableau = get_zero_matrix(prob->inequality_count + prob->equality_count + 1, prob->variable_count*2 +
				    prob->inequality_count + virtual_vars->count + 1);  

  work_set* basis = create_basis(prob);

  insert_constraints(prob, tableau, Et, Ft, gr);
  free_matrix(Et);
  free_matrix(Ft);
  free_matrix(gr);

  insert_simplex_variables(prob, virtual_vars, tableau);
  work_set_free(virtual_vars);

  insert_objective_function(prob, tableau);

  remove_variables(prob, tableau);
  
  bool error = simplex_min(prob, tableau, basis);
  
  if (!error) {
    set_variables(prob, basis, tableau);
  }

  free_matrix(tableau);
  work_set_free(basis);
  return !error;
}
예제 #6
0
파일: scopsowl.C 프로젝트: lyonkl/dgosprey
//Default Pore Diffusion
double default_pore_diffusion(int i, int l, const void *user_data)
{
	double Dp = 0.0;
	int success = 0;
	SCOPSOWL_DATA *dat = (SCOPSOWL_DATA *) user_data;
	//Check for existance of MIXED GAS DATA
	if (l < 0)
	{
		if (dat->gas_dat != NULL)
		{
			dat->gas_dat->CheckMolefractions = false;
			success = set_variables(dat->magpie_dat.sys_dat.PT, dat->magpie_dat.sys_dat.T, dat->gas_velocity, dat->pellet_radius*2.0, dat->y, dat->gas_dat);
			if (success != 0) {mError(simulation_fail); return -1;}
			//Calculate Properties
			success = calculate_properties(dat->gas_dat);
			if (success != 0) {mError(simulation_fail); return -1;}
			Dp = avgDp(Dp(dat->gas_dat->species_dat[i].molecular_diffusion, dat->binder_porosity), Dk(dat->binder_poresize, dat->magpie_dat.sys_dat.T, dat->gas_dat->species_dat[i].molecular_weight))*3600.0/dat->binder_porosity/dat->binder_porosity;
		}
		else
		{
			Dp = Dp(dat->gas_velocity*dat->pellet_radius, dat->binder_porosity)*3600.0/dat->binder_porosity/dat->binder_porosity;
		}
	}
	else
	{
		if (dat->gas_dat != NULL && dat->SurfDiff == true && dat->Heterogeneous == true)
		{
			double tempPT = 0.0;
			for (int j=0; j<dat->skua_dat[l].magpie_dat.sys_dat.N; j++)
				tempPT = tempPT + Pstd(dat->finch_dat[j].unp1(l,0), dat->skua_dat[l].magpie_dat.sys_dat.T);
			dat->skua_dat[l].magpie_dat.sys_dat.PT = tempPT;
			for (int j=0; j<dat->skua_dat[l].magpie_dat.sys_dat.N; j++)
			{
				dat->skua_dat[l].y[j] = Pstd(dat->finch_dat[j].unp1(l,0), dat->skua_dat[l].magpie_dat.sys_dat.T) / dat->skua_dat[l].magpie_dat.sys_dat.PT;
			}
			dat->gas_dat->CheckMolefractions = false;
			success = set_variables(dat->skua_dat[l].magpie_dat.sys_dat.PT, dat->skua_dat[l].magpie_dat.sys_dat.T, dat->gas_velocity, dat->pellet_radius*2.0, dat->skua_dat[l].y, dat->gas_dat);
			if (success != 0) {mError(simulation_fail); return -1;}
			//Calculate Properties
			success = calculate_properties(dat->gas_dat);
			if (success != 0) {mError(simulation_fail); return -1;}
			Dp = avgDp(Dp(dat->gas_dat->species_dat[i].molecular_diffusion, dat->binder_porosity), Dk(dat->binder_poresize, dat->skua_dat[l].magpie_dat.sys_dat.T, dat->gas_dat->species_dat[i].molecular_weight))*3600.0/dat->binder_porosity/dat->binder_porosity;
		}
		else if (dat->gas_dat != NULL)
		{
			double tempPT = 0.0;
			for (int j=0; j<dat->magpie_dat.sys_dat.N; j++)
				tempPT = tempPT + Pstd(dat->finch_dat[j].unp1(l,0), dat->magpie_dat.sys_dat.T);
			dat->magpie_dat.sys_dat.PT = tempPT;
			for (int j=0; j<dat->magpie_dat.sys_dat.N; j++)
			{
				dat->tempy[j] = Pstd(dat->finch_dat[j].unp1(l,0), dat->magpie_dat.sys_dat.T) / dat->magpie_dat.sys_dat.PT;
			}
			dat->gas_dat->CheckMolefractions = false;
			success = set_variables(dat->magpie_dat.sys_dat.PT, dat->magpie_dat.sys_dat.T, dat->gas_velocity, dat->pellet_radius*2.0, dat->tempy, dat->gas_dat);
			if (success != 0) {mError(simulation_fail); return -1;}
			//Calculate Properties
			success = calculate_properties(dat->gas_dat);
			if (success != 0) {mError(simulation_fail); return -1;}
			Dp = avgDp(Dp(dat->gas_dat->species_dat[i].molecular_diffusion, dat->binder_porosity), Dk(dat->binder_poresize, dat->magpie_dat.sys_dat.T, dat->gas_dat->species_dat[i].molecular_weight))*3600.0/dat->binder_porosity/dat->binder_porosity;
		}
		else
		{
			Dp = Dp(dat->gas_velocity*dat->pellet_radius, dat->binder_porosity)*3600.0/dat->binder_porosity/dat->binder_porosity;
		}
	}
	
	return dat->binder_porosity*dat->binder_fraction*Dp;
}
예제 #7
0
void writer::stream(const std::string &string_out)
{
    set_variables();
    std::ofstream output(path, file_mode);
    write(string_out, output);
}
예제 #8
0
DTboolean ScriptingCompute::compute (const PlugBase *plug)
{
	PROFILER(SCRIPTING);

    if (super_type::compute(plug))  return true;

	if (    plug == &_out_a1 || plug == &_out_a2 || plug == &_out_a3 || plug == &_out_a4 ||
            plug == &_out_b1 || plug == &_out_b2 || plug == &_out_b3 || plug == &_out_b4 ||
            plug == &_out_c1 || plug == &_out_c2 || plug == &_out_c3 || plug == &_out_c4    ) {

        set_variables(_eq_a1_parser);
        set_variables(_eq_a2_parser);
        set_variables(_eq_a3_parser);
        set_variables(_eq_a4_parser);

        set_variables(_eq_b1_parser);
        set_variables(_eq_b2_parser);
        set_variables(_eq_b3_parser);
        set_variables(_eq_b4_parser);

        set_variables(_eq_c1_parser);
        set_variables(_eq_c2_parser);
        set_variables(_eq_c3_parser);
        set_variables(_eq_c4_parser);
        
        DTfloat result;
        
        if (_eq_a1_parser.eval(result)) _out_a1 = result;
        if (_eq_a2_parser.eval(result)) _out_a2 = result;
        if (_eq_a3_parser.eval(result)) _out_a3 = result;
        if (_eq_a4_parser.eval(result)) _out_a4 = result;

        if (_eq_b1_parser.eval(result)) _out_b1 = result;
        if (_eq_b2_parser.eval(result)) _out_b2 = result;
        if (_eq_b3_parser.eval(result)) _out_b3 = result;
        if (_eq_b4_parser.eval(result)) _out_b4 = result;

        if (_eq_c1_parser.eval(result)) _out_c1 = result;
        if (_eq_c2_parser.eval(result)) _out_c2 = result;
        if (_eq_c3_parser.eval(result)) _out_c3 = result;
        if (_eq_c4_parser.eval(result)) _out_c4 = result;
		
        _out_a1.set_clean();
        _out_a2.set_clean();
        _out_a3.set_clean();
        _out_a4.set_clean();

        _out_b1.set_clean();
        _out_b2.set_clean();
        _out_b3.set_clean();
        _out_b4.set_clean();

        _out_c1.set_clean();
        _out_c2.set_clean();
        _out_c3.set_clean();
        _out_c4.set_clean();

		return true;
	}
	
	return false;
}
예제 #9
0
static gboolean
environment_core_command (RetroCore *self,
                          unsigned   cmd,
                          gpointer   data)
{
  if (!self)
    return FALSE;

  switch (cmd) {
  case RETRO_ENVIRONMENT_GET_CAN_DUPE:
    return get_can_dupe (self, (gboolean *) data);

  case RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY:
    return get_content_directory (self, (const gchar **) data);

  case RETRO_ENVIRONMENT_GET_INPUT_DEVICE_CAPABILITIES:
    return get_input_device_capabilities (self, (guint64 *) data);

  case RETRO_ENVIRONMENT_GET_LANGUAGE:
    return get_language (self, (unsigned *) data);

  case RETRO_ENVIRONMENT_GET_LIBRETRO_PATH:
    return get_libretro_path (self, (const gchar **) data);

  case RETRO_ENVIRONMENT_GET_LOG_INTERFACE:
    return get_log_callback (self, (RetroLogCallback *) data);

  case RETRO_ENVIRONMENT_GET_OVERSCAN:
    return get_overscan (self, (gboolean *) data);

  case RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE:
    return get_rumble_callback (self, (RetroRumbleCallback *) data);

  case RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY:
    return get_save_directory (self, (const gchar **) data);

  case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY:
    return get_system_directory (self, (const gchar **) data);

  case RETRO_ENVIRONMENT_GET_VARIABLE:
    return get_variable (self, (RetroVariable *) data);

  case RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE:
    return get_variable_update (self, (bool *) data);

  case RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE:
    return set_disk_control_interface (self, (RetroDiskControlCallback *) data);

  case RETRO_ENVIRONMENT_SET_GEOMETRY:
    return set_geometry (self, (RetroGameGeometry *) data);

  case RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS:
    return set_input_descriptors (self, (RetroInputDescriptor *) data);

  case RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK:
    return set_keyboard_callback (self, (RetroKeyboardCallback *) data);

  case RETRO_ENVIRONMENT_SET_MESSAGE:
    return set_message (self, (RetroMessage *) data);

  case RETRO_ENVIRONMENT_SET_PIXEL_FORMAT:
    return set_pixel_format (self, (RetroPixelFormat *) data);

  case RETRO_ENVIRONMENT_SET_ROTATION:
    return set_rotation (self, (RetroRotation *) data);

  case RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME:
    return set_support_no_game (self, (gboolean *) data);

  case RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO:
    return set_system_av_info (self, (RetroSystemAvInfo *) data);

  case RETRO_ENVIRONMENT_SET_VARIABLES:
    return set_variables (self, (RetroVariable *) data);

  case RETRO_ENVIRONMENT_SHUTDOWN:
    return shutdown (self);

  case RETRO_ENVIRONMENT_GET_CAMERA_INTERFACE:
  case RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER:
  case RETRO_ENVIRONMENT_GET_HW_RENDER_INTERFACE:
  case RETRO_ENVIRONMENT_GET_LOCATION_INTERFACE:
  case RETRO_ENVIRONMENT_GET_PERF_INTERFACE:
  case RETRO_ENVIRONMENT_GET_SENSOR_INTERFACE:
  case RETRO_ENVIRONMENT_GET_USERNAME:
  case RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK:
  case RETRO_ENVIRONMENT_SET_CONTROLLER_INFO:
  case RETRO_ENVIRONMENT_SET_FRAME_TIME_CALLBACK:
  case RETRO_ENVIRONMENT_SET_HW_RENDER:
  case RETRO_ENVIRONMENT_SET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE:
  case RETRO_ENVIRONMENT_SET_MEMORY_MAPS:
  case RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL:
  case RETRO_ENVIRONMENT_SET_PROC_ADDRESS_CALLBACK:
  case RETRO_ENVIRONMENT_SET_SERIALIZATION_QUIRKS:
  case RETRO_ENVIRONMENT_SET_SUBSYSTEM_INFO:
  case RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS:
  default:
    return FALSE;
  }
}