Ensamblaje los elementos en el sistema lineal
[Creación del sistema general de ecuaciones lineales]

Diagrama de colaboración para Ensamblaje los elementos en el sistema lineal:

Módulos

 Ensamblaje sobre la Matriz T
 Ensamblaje sobre el Vector W

Funciones

void elementoMatrizT (double *p_elemento, basicos *p_DATOS)
 Esta Función se encarga de seleccionar a que función debe llamarse según el elemento que se este leyendo en tablas.
void elementoVectorW (double *p_elemento, basicos *p_DATOS, float t)
 Esta Función se encarga de seleccionar a que función debe llamarse según el elemento que se este leyendo en tablas.

Descripción detallada

Este grupo de funciones es la encargada de realizar el ensamblaje del sistema lineal de ecuaciones que debe resolver el programa. Se dividen las funciones a su vez en dos grupos más en función de su contribución, a saber:

Documentación de las funciones

void elementoMatrizT ( double *  p_elemento,
basicos p_DATOS 
)

Esta Función se encarga de seleccionar a que función debe llamarse según el elemento que se este leyendo en tablas.

Para esto hace uso del switch

Parámetros:
elemento Puntero a vector con los valores de definición del elemento
p_DATOS Puntero a estructura basicos

Definición en la línea 10 del archivo elementos.cpp.

00011 {
00012 double tipo_elemento0= *p_elemento;
00013 int tipo_elemento=int(tipo_elemento0);
00014         switch (tipo_elemento)
00015         {
00016         case 0:  conductanciaMatrizT(p_elemento,p_DATOS);break;
00017         case 1:  resistenciaMatrizT(p_elemento,p_DATOS);break;
00018         case 2:  condensadorMatrizT(p_elemento,p_DATOS);break;
00019         case 3:  bobinaMatrizT(p_elemento,p_DATOS);break;
00020         case 4:  fuenteVccMatrizT(p_elemento,p_DATOS);break;
00021         case 5:  break;
00022         case 6:  amplificadorMatrizT(p_elemento,p_DATOS);break;
00023         case 7:  trafoMatrizT(p_elemento,p_DATOS);break;
00024         case 8:  fuenteIdependVMatrizT(p_elemento,p_DATOS);break;
00025         case 9:  fuenteVdependVMatrizT(p_elemento,p_DATOS);break;
00026         case 10: fuenteIdependIMatrizT(p_elemento,p_DATOS);break;
00027         case 11: fuenteVdependIMatrizT(p_elemento,p_DATOS);break;
00028         case 12: bobinaacopladaMatrizT(p_elemento,p_DATOS);break;
00029         case 13: interruptorMatrizT(p_elemento,p_DATOS);break;
00030         case 14: cuadripoloAdmitanciaMatrizT(p_elemento,p_DATOS);break;
00031         case 15: cuadripoloImpedanciaMatrizT(p_elemento,p_DATOS);break;
00032         case 16: cuadripoloHibridoMatrizT(p_elemento,p_DATOS);break;
00033         case 17: cuadripoloTrasmisionMatrizT(p_elemento,p_DATOS);break;
00034         case 18: {cout<<"\n ERROR Asegúrese de que la librería está adaptada a Ávalon"<<
00035         endl; break;}
00036         }       
00037 }

void elementoVectorW ( double *  p_elemento,
basicos p_DATOS,
float  t 
)

Esta Función se encarga de seleccionar a que función debe llamarse según el elemento que se este leyendo en tablas.

Para esto hace uso del switch

Parámetros:
elemento Puntero a vector con los valores de definición del elemento
p_DATOS Puntero a estructura basicos
t Valor de tiempo, importante en las funciones de fuentes de excitación para calcular el valor temporal de dicha excitación

Definición en la línea 1964 del archivo elementos.cpp.

01964                                                                    {
01965 double tipo_elemento0= *p_elemento;
01966 int tipo_elemento=int(tipo_elemento0);
01967 /*for(int i=0;i<16;i++){cout<<p_elemento[i]<<" ";}
01968 cout<<endl;*/
01969         switch (tipo_elemento)
01970         {
01971         case 0:  break; 
01972         case 1:  p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01973         case 2:  if(p_elemento[2]==1){p_DATOS->apuntaEA=p_DATOS->apuntaEA+1;}break;
01974         case 3:  p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01975         case 4:  fuenteVccVectorW(p_elemento,p_DATOS,t);break;
01976         case 5:  fuenteIVectorW(p_elemento,p_DATOS,t);break;
01977         case 6:  p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01978         case 7:  p_DATOS->apuntaA2=p_DATOS->apuntaA2+2;break;
01979         case 8:  if(p_elemento[2]==1){p_DATOS->apuntaEA=p_DATOS->apuntaEA+1;}break;
01980         case 9:  p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01981         case 10: p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01982         case 11: p_DATOS->apuntaA2=p_DATOS->apuntaA2+2;break;
01983         case 12: p_DATOS->apuntaA2=p_DATOS->apuntaA2+2;break;
01984         case 13: p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01985         case 14: break;
01986         case 15: p_DATOS->apuntaA2=p_DATOS->apuntaA2+2;break;
01987         case 16: p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01988         case 17: p_DATOS->apuntaA2=p_DATOS->apuntaA2+1;break;
01989         case 18: {cout<<"\n ERROR Asegúrese de que la librería está adaptada a Ávalon"<<
01990         endl; break;}
01991         }
01992         //cout<<"\n Primer valor del vector de datos elementos "<<p_elemento[1]<<endl;
01993 }


Generado el Wed Sep 2 16:04:55 2009 para Software de Análisis de Circuitos Lineales mediante Métodos Avanzados de Resolución para Uso Docente. Manual de Código Fuente por  doxygen 1.5.6