Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

solver.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= solver.h                                                   Mayo de 1999 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones para los SOLVERs numericos!                                =
00005 //=-------------------------------------------------------------------------=
00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00013 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00014 //=-------------------------------------------------------------------------=
00015 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00016 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00020 //===========================================================================
00021 
00022 #ifndef __SOLVER__
00023 #define __SOLVER__
00024 
00025 #include "jed_defs.h"
00026 
00027 class ECUACION_DIFERENCIAL
00041 {
00042   public:
00043     virtual int ODE_numero_de_variables_de_estado(void) = 0;
00044     virtual void ODE_reportar_variables_de_estado(double *Datos) = 0;
00045     virtual void ODE_actualizar_variables_de_estado(double *Datos) = 0;
00046     virtual void ODE_calcular_la_primera_derivada(double *Datos) = 0;
00047 };
00048 
00049 class SOLVER
00066 {
00067   protected:
00068     double *temp1;
00069     double *temp2;
00070     long int num_variables_de_estado;
00071     ECUACION_DIFERENCIAL *Ecuacion;
00072 
00073     void escalar_vector(double factor, double *vector);
00074     void sumar_vectores(void);
00075   public:
00076     SOLVER(ECUACION_DIFERENCIAL *Mi_ecuacion);
00077     virtual ~SOLVER();
00078 
00079     virtual void ejecutar_solucion(double delta_t) = 0;
00080 };
00081 
00082 class SOLVER_EULER :public SOLVER
00089 {
00090   public:
00091     SOLVER_EULER(ECUACION_DIFERENCIAL *Mi_ecuacion);
00092     virtual ~SOLVER_EULER();
00093 
00094     void ejecutar_solucion(double delta_t);
00095 };
00096 
00097 class SOLVER_RUNGE_KUTTA : public SOLVER
00103 {
00104   public:
00105     SOLVER_RUNGE_KUTTA(ECUACION_DIFERENCIAL *Mi_ecuacion);
00106     virtual ~SOLVER_RUNGE_KUTTA();
00107 
00108     void ejecutar_solucion(double delta_t);
00109 };
00110 
00111 #endif // __SOLVER__
00112 
00113 //===========================================================================
00114 //= EOF                                                                     =
00115 //===========================================================================
00116 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.