/// <summary> /// //默认构造函数 /// </summary> public MainForm() { InitializeComponent(); if (Properties.Settings.Default.ShowGettingStart) { Shown += new EventHandler(NewToolStripMenuItem_Click); } string MapPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Cosmos\\DefaultMaps\\无标题.cgm"; string DatabasePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Cosmos\\DefaultDatabases"; if (!Directory.Exists(Path.GetDirectoryName(MapPath))) { Directory.CreateDirectory(Path.GetDirectoryName(MapPath)); } if (!File.Exists(mapPath)) { CGM.CreateEmptyCgv(mapPath); } if (!Directory.Exists(DatabasePath)) { Directory.CreateDirectory(DatabasePath); } }
/// <summary> /// Создаёт решатель для метода с указанным логером /// </summary> /// <param name="type">Метод</param> /// <param name="logger">Логер</param> /// <param name="factorizer">Разложение</param> /// <param name="krylovSubspaceDimension">Размерность подпространства Крылова</param> /// <returns></returns> public static ISolver Spawn(MethodsEnum type, ILogger logger, int krylovSubspaceDimension = 4) { IMethod method; switch (type) { case MethodsEnum.CGM: method = new CGM(); break; case MethodsEnum.GaussianSeidel: method = new GaussianSeidelMethod(); break; case MethodsEnum.Jacobi: method = new JacobiMethod(); break; case MethodsEnum.LOS: method = new LOS(); break; case MethodsEnum.BCGStab: method = new BCGStab(); break; default: return(null); } return(new LoggingSolver(method, logger)); }
/// <summary> /// Read CGM file and parse it. /// Later parsed file will be drawn in form. /// </summary> /// <param name="filename"></param> private void Read(string filename) { textBoxFilename.Text = filename; cgm = new CGM(); cgm.Read(filename); }