Ejemplo n.º 1
0
 public Action GetSaveCommand()
 {
     return(() =>
     {
         var path = _fileHandler.GetPath(_vProject.ProjectDir);
         var d = (SetFieldsAblDictData)_fileHandler.Read(path);
         d.xMax = _model.xMax;
         d.yMax = _model.yMax;
         d.zMax = _model.zMax;
         d.logInit = _model.logInit;
         d.deltaU = _model.deltaU;
         d.deltaV = _model.deltaV;
         d.Uperiods = _model.Uperiods;
         d.Vperiods = _model.Vperiods;
         d.zPeak = _model.zPeak;
         d.zInversion = _model.zInversion;
         d.widthInversion = _model.widthInversion;
         d.Tbottom = _model.Tbottom;
         d.Ttop = _model.Ttop;
         d.dTdz = _model.dTdz;
         d.Ug = _model.Ug;
         d.UgDir = _model.UgDir;
         d.z0 = _model.z0;
         d.kappa = _model.kappa;
         d.updateInternalFields = _model.updateInternalFields;
         d.updateBoundaryFields = _model.updateBoundaryFields;
         _fileHandler.Write(path, d);
         _model.AcceptChanges();
     });
 }
Ejemplo n.º 2
0
 public Action GetSaveCommand()
 {
     return(() =>
     {
         var path = _fileHandler.GetPath(_vProject.ProjectDir);
         var d = (DecomposeParDictData)_fileHandler.Read(path);
         d.numberOfSubdomains = _model.ParallelProcessors;
         //TODO: Mesh refinement
         _fileHandler.Write(path, d);
         _model.AcceptChanges();
     });
 }
        public override object Read(string path)
        {
            var    obj  = new TurbulencePropertiesData();
            string text = Load(path);

            var grammar = new OpenFoamGrammar();
            var parser  = new Parser(grammar);
            var tree    = parser.Parse(text);

            _fileHandler = null;

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                if (rootEntryNode.GetEntryIdentifier() == "simulationType")
                {
                    obj.SimulationType = rootEntryNode.GetBasicValEnum <TurbulenceModel>();
                    if (obj.SimulationType == TurbulenceModel.RASModel)
                    {
                        _fileHandler      = new RASPropertiesHandler();
                        obj.RasProperties = (RASPropertiesData)_fileHandler.Read(path);
                    }
                    else if (obj.SimulationType == TurbulenceModel.LESModel)
                    {
                        _fileHandler      = new LESPropertiesHandler();
                        obj.LesProperties = (LESPropertiesData)_fileHandler.Read(path);
                    }
                    break;
                }
            }
            return(obj);
        }
Ejemplo n.º 4
0
        public Action GetSaveCommand()
        {
            return(() =>
            {
                var path = _fileHandler.GetPath(_vProject.ProjectDir);
                var d = (AblPropertiesData)_fileHandler.Read(path);

                d.turbineArrayOn = _model.TurbineArrayOn;
                d.driveWindOn = _model.DriveWindOn;
                d.UWindSpeedDim.ScalarValue = _model.UWindSpeed;
                d.UWindDir = _model.UWindDir;
                d.HWindDim.ScalarValue = _model.HWind;
                d.alpha = _model.Alpha;
                d.lowerBoundaryName = _model.LowerBoundaryName;
                d.upperBoundaryName = _model.UpperBoundaryName;
                d.meanAvgStartTime = _model.MeanAvgStartTime;
                d.corrAvgStartTime = _model.CorrAvgStartTime;
                d.statisticsOn = _model.StatisticsOn;
                d.statisticsFrequency = _model.StatisticsFrequency;

                _fileHandler.Write(path, d);
                _model.AcceptChanges();
            });
        }
Ejemplo n.º 5
0
        public Action GetSaveCommand()
        {
            return(() =>
            {
                var path = _fileHandler.GetPath(_vProject.ProjectDir);
                var d = (ControlDictData)_fileHandler.Read(path);

                d.application = _model.Application;
                d.startFrom = _model.StartFrom;
                d.startTime = _model.StartTime;
                d.stopAt = _model.StopAt;
                d.endTime = _model.EndTime;
                d.deltaT = _model.DeltaT;
                d.writeControl = _model.WriteControl;
                d.writeInterval = _model.WriteInterval;
                d.purgeWrite = _model.PurgeWrite;
                d.writeFormat = _model.WriteFormat;
                d.writePrecision = _model.WritePrecision;
                d.writeCompression = _model.WriteCompression;
                d.timeFormat = _model.TimeFormat;
                d.timePrecision = _model.TimePrecision;
                d.runTimeModifiable = _model.IsRunTimeModifiable
                    ? FlagYesNo.yes
                    : FlagYesNo.no;
                d.adjustTimeStep = _model.AdjustTimeStep
                    ? FlagYesNo.yes
                    : FlagYesNo.no;
                d.maxCo = _model.MaxCo;
                d.maxDeltaT = _model.MaxDeltaT;

                // Functions

                _fileHandler.Write(path, d);
                _model.AcceptChanges();
            });
        }
Ejemplo n.º 6
0
        public Action GetSaveCommand()
        {
            return(() =>
            {
                var path = _fileHandler.GetPath(_vProject.ProjectDir);
                var d = (TransportPropertiesData)_fileHandler.Read(path);

                d.betaM = _model.BetaM;
                d.betaSurfaceStress = _model.BetaSurfaceStress;
                d.deltaLESCoeff = _model.DeltaLESCoeff;
                d.gammM = _model.GammM;
                d.LESModel = _model.LESModel;
                d.nu = _model.MolecularViscosity;
                d.z0 = _model.RoughnessHeight;
                d.Cs = _model.SmagorinskyConstant;
                d.surfaceStressModel = _model.SurfaceStressModel;
                d.q0 = _model.SurfaceTemperatureFlux;
                d.TRef = _model.TRef;
                d.transportModel = _model.TransportModel;
                d.kappa = _model.VonKarmanConstant;
                _fileHandler.Write(path, d);
                _model.AcceptChanges();
            });
        }
Ejemplo n.º 7
0
        public void UpdateFromProject(VProject vProject)
        {
            _vProject = vProject;
            var path = _fileHandler.GetPath(_vProject.ProjectDir);
            var d    = (TurbineArrayPropData)_fileHandler.Read(path);

            if (d == null)
            {
                return;
            }
            viewPropArray.OutputControl  = d.outputControl;
            viewPropArray.OutputInterval = d.outputInterval;

            foreach (var x in d.turbine)
            {
                if (x.turbineType != "")
                {
                    turbineNameArray.Add(x.turbineType);
                    viewTurbineType.TurbineTypes.Insert(viewTurbineType.TurbineTypes.Count - 1,
                                                        new VTurbineType(x.turbineType, _vProject.ProjectDir, true));
                }
                viewPropArray.Turbines.Insert(viewPropArray.Turbines.Count - 1,
                                              new VTurbineArrayInstance()
                {
                    Azimuth             = x.azimuth,
                    BaseLocation        = new VVertice(x.baseLocation),
                    BladeUpdateType     = x.bladeUpdateType,
                    Epsilon             = x.epsilon,
                    FluidDensity        = x.fluidDensity,
                    NacYaw              = x.nacYaw,
                    NumBladePoints      = x.numBladePoints,
                    Pitch               = x.pitch,
                    PointInterpType     = x.pointInterpType,
                    PointDistType       = x.pointDistType,
                    RotSpeed            = x.rotSpeed,
                    RotationDir         = x.rotationDir,
                    TipRootLossCorrType = x.tipRootLossCorrType,
                    TypesCopy           = turbineNameArray,                       // TODO
                    TurbineType         = x.turbineType,
                    PropName            = "turbine" + viewPropArray.Turbines.Count,
                });
            }
            viewPropArray.AcceptChanges();
        }
Ejemplo n.º 8
0
        public void UpdateFromProject(VProject vProject)
        {
            _vProject = vProject;
            var path = _fileHandler.GetPath(_vProject.ProjectDir);
            var d    = (FvSchemesData)_fileHandler.Read(path);

            foreach (var x in d.interpolationSchemes)
            {
                schemes.cInterpolation.Add(new VInterpolationScheme()
                {
                    Scheme            = (x.use_default) ? "default" : x.scheme,
                    Function          = (x.use_default) ? "" : x.function,
                    BoundView         = x.view,
                    Flux              = x.flux,
                    InterpolationType = x.interpolation,
                    LowerLimit        = (x.view != BoundView.None) ? x.lower_limit : 0,
                    UpperLimit        = (x.view != BoundView.None) ? x.upper_limit : 0,
                    Psi = x.psi
                });
            }
            foreach (var x in d.snGradSchemes)
            {
                schemes.cSnGrad.Add(new VSurfaceNormalGradientScheme()
                {
                    Scheme   = (x.use_default) ? "default" : x.scheme,
                    Function = (x.use_default) ? "" : x.function,
                    SurfaceNoramGradientType = x.type,
                    Psi = x.psi
                });
            }
            foreach (var x in d.gradSchemes)
            {
                schemes.cGradient.Add(new VGradientScheme()
                {
                    Scheme             = (x.use_default) ? "default" : x.scheme,
                    Function           = (x.use_default) ? "" : x.function,
                    InterpolationType  = x.interpolation,
                    DiscretisationType = x.discretisation,
                    LimitedType        = x.limited,
                    Psi = x.psi
                });
            }
            foreach (var x in d.divSchemes)
            {
                schemes.cDivergence.Add(new VDivergenceScheme()
                {
                    Scheme             = (x.use_default) ? "default" : x.scheme,
                    Function           = (x.use_default) ? "" : x.function,
                    DiscretisationType = x.discretisation,
                    BoundView          = x.view,
                    InterpolationType  = x.interpolation,
                    LowerLimit         = (x.view != BoundView.None) ? x.lower_limit : 0,
                    UpperLimit         = (x.view != BoundView.None) ? x.upper_limit : 0,
                    Psi = x.psi
                });
            }
            foreach (var x in d.laplacianSchemes)
            {
                schemes.cLaplacian.Add(new VLaplacianScheme()
                {
                    Scheme                   = (x.use_default) ? "default" : x.scheme,
                    Function                 = (x.use_default) ? "" : x.function,
                    InterpolationType        = x.interpolation,
                    DiscretisationType       = x.discretisation,
                    SurfaceNoramGradientType = x.snGradScheme,
                    Psi = x.psi
                });
            }
            foreach (var x in d.ddtSchemes)
            {
                schemes.cTime.Add(new VTimeScheme()
                {
                    Scheme         = (x.use_default) ? "default" : x.scheme,
                    Function       = (x.use_default) ? "" : x.function,
                    TimeSchemeType = x.type,
                    Psi            = x.psi
                });
            }
            foreach (var x in d.fluxCalculation)
            {
                schemes.cFlux.Add(new VFluxControl()
                {
                    Flux   = x.flux,
                    Enable = x.enable
                });
            }
            schemes.AcceptChanges();
        }