                       elementri *elements, node *nodes, float *V, bool verbose,
                       float *bench) {
     int i, k;
-    float *rsum = (float*)malloc(nn*sizeof(float));
-    float *dsum = (float*)malloc(nn*sizeof(float));
-
-    // Inicialização dos vetores.
-    for (i = 0; i < nn; i++) {
-        rsum[i] = 0.0;
-        dsum[i] = 0.0;
-    }
 
     // Pre-processamento. Calcula as matrizes de contribuição dos elementos.
     float J1, J2, J3, J4, dJ;

    CudaSafeCall(cudaMalloc(&_R, s_V));
    CudaSafeCall(cudaMalloc(&_dsum, s_V));
    CudaSafeCall(cudaMalloc(&_rsum, s_V));

    return k;
}

    float *p = (float*)malloc(nn*sizeof(float));
    float *u = (float*)malloc(nn*sizeof(float));

    // Pré-condicionamento.
    for (i = 0; i < nn; i++) {
        ri = nodes[i].calc ? rsum[i] - dsum[i]*V[i] : 0.0;
        p[i] = ri;
