示例#1
0
        /// <summary>
        /// Reads the UI parameters into a RunParams object.
        /// </summary>
        private RunParams GetParamsFromUi()
        {
            RunParams parms = new RunParams();

            parms.GridSize.Width  = Convert.ToInt32(GridSizeX_NUD.Value);
            parms.GridSize.Height = Convert.ToInt32(GridSizeY_NUD.Value);
            parms.LatticeSpacing  = (float)LatticeSpacing_NUD.Value;
            parms.Mass1           = (float)Mass1_NUD.Value;
            parms.Mass2           = (float)Mass2_NUD.Value;

            parms.InitialWavePacketSize    = new Vec2((float)InitialPacketSizeX_NUD.Value, (float)InitialPacketSizeY_NUD.Value);
            parms.InitialWavePacketCenter1 = new Vec2((float)InitialPacketCenter1x_NUD.Value, (float)InitialPacketCenter1y_NUD.Value);
            parms.AtomCenter = new Vec2((float)InitialPacketCenter2x_NUD.Value, (float)InitialPacketCenter2y_NUD.Value);
            parms.InitialWavePacketMomentum1 = new Vec2((float)P1x_NUD.Value, (float)P1y_NUD.Value);
            parms.AtomSize = (float)AtomSize_NUD.Value;

            string shoStateString = (string)SHOState_ComboBox.SelectedItem;

            string[] comps = shoStateString.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
            parms.Atom_N  = int.Parse(comps[2]);
            parms.Atom_Lz = int.Parse(comps[comps.Length - 1]);

            parms.TimeStep        = (float)TimeStep_NUD.Value;
            parms.TotalTime       = (float)TotalTime_NUD.Value;
            parms.NumFramesToSave = (int)NumFrames_NUD.Value;

            parms.MultiThread = MultiThread_CheckBox.Checked;

            parms.VCode = RunParams.FromString(Properties.Settings.Default.LastRunParams).VCode;

            return(parms);
        }
示例#2
0
        /// <summary>
        /// Loads the last-saved code.
        /// </summary>
        private void LoadLastSavedCode()
        {
            string errorMessages = SetCode(RunParams.FromString(Properties.Settings.Default.LastRunParams).VCode);

            if (!string.IsNullOrEmpty(errorMessages))
            {
                SetCode(DefaultSnippet);
            }
        }
示例#3
0
        // Constructor
        public SolverControl()
        {
            InitializeComponent();
            SHOState_ComboBox.SelectedIndex = 0;

            m_VBuilder = new VCodeBuilder(); // Also loads the last-used code snippet

            // Load the last-used params
            if (!string.IsNullOrEmpty(Properties.Settings.Default.LastRunParams))
            {
                try
                {
                    UpdateUiFromParams(RunParams.FromString(Properties.Settings.Default.LastRunParams));
                }
                catch {}
            }
        }
示例#4
0
 /// <summary>
 /// Handler for drag-drop events
 /// </summary>
 private void OnDragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(DataFormats.FileDrop))
     {
         string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
         if (files.Length > 0)
         {
             try
             {
                 string    fileContents = File.ReadAllText(files[0]);
                 RunParams parms        = RunParams.FromString(fileContents);
                 UpdateUiFromParams(parms);
             }
             catch
             {
                 MessageBox.Show("Invalid parameter file");
             }
         }
     }
 }
示例#5
0
        /// <summary>
        /// Sets and saves the V-code.
        /// </summary>
        public string SetCode(string code)
        {
            // Try to compile the given code
            string   errorMessages;
            Assembly assembly = CompileCode(AddBoilerplateCode(code), out errorMessages);

            // Check for compilation errors
            if (assembly == null)
            {
                return(string.IsNullOrEmpty(errorMessages) ? "Unknown compilation error." : errorMessages);
            }
            else
            {
                // Accept the given code
                Code_TextBox.Text = code;
                m_vCalcMethodInfo = assembly.GetTypes()[0].GetMethod("V", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);

                RunParams parms = RunParams.FromString(Properties.Settings.Default.LastRunParams);
                parms.VCode = code;
                Properties.Settings.Default.LastRunParams = parms.ToString();
                Properties.Settings.Default.Save();
                return("");
            }
        }