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(); }); }
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); }
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(); }); }
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(); }); }
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(); }); }
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(); }
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(); }