Salve a tutti, ho un codice che in genere non da nessun problema.
Dà problemi invece "a quanto pare" se le dimensioni ( nodisaldatura.size() ) cominciano a essere grandi e se ne esce dal main:
codice:
print("CALCOLO FORZE LINEARI EQUIVALENTI");
int VirtualNode; //0 = NO; 1=SI
double fx[nodisaldatura.size()];
double fy[nodisaldatura.size()];
double fz[nodisaldatura.size()];
double mx[nodisaldatura.size()];
double my[nodisaldatura.size()];
//double mz[nodisaldatura.size()]; //non necessaria ai fini del calcolo dello structural stress
std::vector<double> fx_vn(nodisaldatura.size()-2,0.);
std::vector<double> fy_vn(nodisaldatura.size()-2,0.);
std::vector<double> fz_vn(nodisaldatura.size()-2,0.);
std::vector<double> mx_vn(nodisaldatura.size()-2,0.);
std::vector<double> my_vn(nodisaldatura.size()-2,0.);
std::vector<double> fx_cir(nodisaldatura.size(),0.);
std::vector<double> fy_cir(nodisaldatura.size(),0.);
std::vector<double> fz_cir(nodisaldatura.size(),0.);
std::vector<double> mx_cir(nodisaldatura.size(),0.);
std::vector<double> my_cir(nodisaldatura.size(),0.);
std::vector<std::vector<double> > M;//(nodisaldatura.size(),nodisaldatura.size());
std::vector<std::vector<double> > Mvirtual;//nel caso si usi il metodo del nodo virtuale
//inizializzazione
std::vector<double> riga_n(nodisaldatura.size(),0.); //serve per inizializzazione matrice con tutti 0
std::vector<double> riga_m(nodisaldatura.size()-2,0.);
for(int i=0;i<nodisaldatura.size();i++) {
fx[i]=0.;
fy[i]=0.;
fz[i]=0.;
mx[i]=0.;
my[i]=0.;
//mz[i]=0.; //non necessaria ai fini del calcolo dello structural stress
M.push_back(riga_n);
Mvirtual.push_back(riga_m);
}
da qualche parte nel codice in neretto qualcosa non funziona e il programma si blocca...
Cosa può essere e come potrei risolvere?
Vi ringrazio!