|
Funciones | |
| int | resolucion_permanente (basicos *p_DATOS) |
| Función que se encarga de la resolución del sistema permanente del circuito a analizar. | |
| int resolucion_permanente | ( | basicos * | p_DATOS | ) |
Función que se encarga de la resolución del sistema permanente del circuito a analizar.
| Puntero | a estructura basicos |
Definición en la línea 135 del archivo estructuras.cpp.
00136 { 00137 Vec X,W; Mat T; 00138 PetscErrorCode ierr; 00139 KSP ksp; 00140 PetscViewer viewer, escribeDATOS; 00141 //Creamos el Vector que guardará la solución del sistema estacionario 00142 p_DATOS->x_perm=p_DATOS->creax_perm(); 00143 VecAssemblyBegin(p_DATOS->x_perm); VecAssemblyEnd(p_DATOS->x_perm); 00144 //Cargamos los parametros de preacondicionamiento 00145 PetscOptionsInsertFile("opciones.txt"); 00146 ierr = KSPCreate(PETSC_COMM_WORLD,&ksp);CHKERRQ(ierr); 00147 //Copias de los elementos con los que trabajaremos T,W y X 00148 T=p_DATOS->T; W=p_DATOS->W; X=p_DATOS->x_perm; 00149 //Resolución del sistema lineal 00150 ierr = KSPSetOperators(ksp,T,T,DIFFERENT_NONZERO_PATTERN);CHKERRQ(ierr); 00151 KSPSetFromOptions(ksp); 00152 ierr = KSPSolve(ksp,W,X);CHKERRQ(ierr); 00153 //llamada a funcion que excriba los valores del sistema 00154 PetscViewerASCIIOpen(PETSC_COMM_WORLD, "Datos_x_perm.data", &escribeDATOS); 00155 MatView(p_DATOS->T, escribeDATOS); 00156 VecView(p_DATOS->W, escribeDATOS); 00157 //Volcado del resultado en la Estructura DATOS BASICOS 00158 p_DATOS->x_perm=X; 00159 ierr = MatDestroy(T);CHKERRQ(ierr); 00160 ierr = VecDestroy(W);CHKERRQ(ierr); 00161 ierr = VecDestroy(X);CHKERRQ(ierr); 00162 00163 //Escritura de la solución en fichero 00164 PetscViewerASCIIOpen(PETSC_COMM_WORLD, "x_perm.data", &viewer); 00165 VecView(p_DATOS->x_perm, viewer); 00166 return 0; 00167 }
1.5.6