Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - poliche

#1
Hola estoy construyendo un nuevo programa y no entiendo por qué crashea, ya que es un programa muy simple. No se si tiene que ver con un problema a la hora de programar o es un problema del compilador, pero al ejecutar obtengo el mensaje "process exited with return value 3221226356". Si alguien me puede ayudar.

Código:

Código (cpp) [Seleccionar]
//New_problem_1

#include<iostream>
#include<vector>


using namespace std;

const double rho1=1500.0, rho2=1600.0, rho3=1900.0, rho4=2500.0; //densities(kg/m3)
const double cp1=750.0, cp2=770.0, cp3=810.0, cp4=930.0; //cp (J/kg*K)
const double k1=170.0, k2=140.0, k3=200.0, k4=140.0; //thermic_conductivity (W/m*K)
const double alpha=9.0, Tg=33+273; //heat_transfer_coefficient_and_temperature_of_external_gas
const double q_top=60.0; //Q_flow_on_the_top_considered_outgoing
double k12=0.0, k13=0.0, k32=0.0, k24=0.0, k34=0.0; //heat_transfer_coefficients_internal_borders
const double t_step=1.0; //time_discretitzation
const double L=1.1, H=0.8; //geometric_definition
const double T0=281.0; //initial_temperature
const int Nx=11, Ny=8; //control_volumes_(horitzontal_vertical)
const double Ax=L/Nx, Ay=H/Ny; //nodes_separation

int main(){

vector<double> Xnode(Nx+1,0.0), Ynode(Ny+1,0.0); //nodes_position_vectors
vector<vector<double> > T_bef_calc(Nx+1,vector<double>(Ny+1,0.0)); //T(n)_calculated
vector<vector<double> > T_now_est(Nx+1,vector<double>(Ny+1,0.0)); //T(n+1)_estimated
vector<vector<double> > T_now_calc(Nx+1,vector<double>(Ny+1,0.0)); //T(n+1)_calculated

//geometric_definition

Xnode[0]=0;
Xnode[1]=Ax/2;
Xnode[Nx+1]=L;
for (int i=2;i<=Nx+1;i++){
Xnode[i]=Xnode[i-1]+Ax;
}

Ynode[0]=0;
Ynode[1]=Ay/2;
Ynode[Ny+1]=H;

for (int i=2;i<=Ny+1;i++){
Ynode[i]=Ynode[i-1]+Ay;
}

//Initialitzation_of_temperatures

for (int i=0;i<=1;i++){
for (int j=0; j<=1; j++){
T_bef_calc[i][j]=T0;
}
}

return 0;
}



Mod: Los códigos deben ir en etiquetas GeSHi
#2
Muy Buenas,

Necesito ayuda con un error de c++ que no sé resolver.
El caso es que estoy realizando un programa para estudiar la transferencia de calor por conducción en una placa 2D, con lo que necesito construir una malla sobre la placa, asignando coordenadas a cada nodo y cara. El hecho es que el programa funciona bien hasta que la iteración llega a la coordenada y=0.6 y no logro entender por qué, ya que, aunque cuando reviso el vector donde guardo las coordenadas y (y_face) el sexto valor es igual a 0.6, el programa no me deja acceder a sentencias condicionales dónde y==0.6.

A continuación os adjunto la parte del código que estoy usando para revisar el error y ni siquiera con un programa tan sencillo logro acceder a la condición y==0.6:

// programa_2


Código (cpp) [Seleccionar]
#include<iostream>
#include<stdlib.h>

using namespace std;

int main(void){
int N_h=11, N_v=8;
double y_face[N_v], y_node[N_v+1]; //faces_and_nodes_coordinates
double L=1.1, H=0.8; //geometric_definition
int i=0;



cout<<"y_face:"<<"\n";
for (i=0;i<=N_v;i++){
y_face[i]=(H/N_v)*i;
        cout<<y_face[i]<<endl;
    }
    cout<<"y_node:"<<"\n";
    for (i=1;i<=N_v;i++){
        y_node[i]=(y_face[i-1]+y_face[i])/2;
        cout<<y_node[i]<<endl;
    }
    y_node[0]=0; //first node y coordinates
    y_node[N_v+1]=H; //last node y coordinates
if (y_face[6]==0.6){
cout<<"hola";
}

}


Si me pudierais ayudar a descubrir por qué os estaría muy agradecido


y_face:
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
y_node:
0.05
0.15
0.25
0.35
0.45
0.55
0.65
0.75

--------------------------------
Process exited with return value 0
Press any key to continue . . .

Esto es lo que obtengo, como veis a pesar de que el sexto valor del vector y_face es 0.6, el programa no muestra la palabra "hola" por pantalla...

MOD: No hacer doble post. Usar etiquetas GeSHi