Exemple #1
0
        public override object Read(string path)
        {
            var    obj  = new AirfoilPropertiesInstance();
            string text = Load(path);

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

            obj.row = new List <Vertice>();

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var id = rootEntryNode.GetEntryIdentifier();
                if (id == "airfoilData")
                {
                    var dict = rootEntryNode.GetDictContent().ChildNodes[1];
                    foreach (ParseTreeNode t in dict.ChildNodes)
                    {
                        var array_head = t.ChildNodes[0].ChildNodes[1].ChildNodes;
                        var v          = new Vertice
                        {
                            X = Convert.ToDecimal(array_head[0].ChildNodes[0].Token.Value),
                            Y = Convert.ToDecimal(array_head[1].ChildNodes[0].Token.Value),
                            Z = Convert.ToDecimal(array_head[2].ChildNodes[0].Token.Value)
                        };
                        obj.row.Add(v);
                    }
                }
            }
            obj.airfoilName = FileName;
            return(obj);
        }
Exemple #2
0
        public override object Read(string path)
        {
            var    rawData = new FvSolutionData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "options":
                    ParseOptions(rootEntryNode.ChildNodes[2], rawData);
                    break;

                case "solvers":
                    ParseSolvers(rootEntryNode.ChildNodes[2], rawData);
                    break;
                }
            }
            return(rawData);
        }
Exemple #3
0
        public override object Read(string path)
        {
            var    obj = new FvSolutionData();
            string txt = Load(path);

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "solvers":
                    obj.Solvers = GetSolvers(rootEntryNode.GetDictContent());
                    break;

                case "PISO":
                case "SIMPLE":
                case "PIMPLE":
                    obj.Solution = GetSolution(identifier, rootEntryNode.GetDictContent());
                    break;
                }
            }
            return(obj);
        }
        public override object Read(string path)
        {
            var    rawData = new DecomposeParDictData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "numberOfSubdomains":
                    rawData.numberOfSubdomains = rootEntryNode.GetBasicValInt();
                    break;
                }
            }
            return(rawData);
        }
        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 override object Read(string path)
        {
            var rawData = new VelocityData();
            string txt;
            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                    //case "turbineArrayOn":
                    //    rawData.TurbineArrayOn = rootEntryNode.GetBasicValBool();
                    //    break;
                }
            }
            return rawData;
        }
Exemple #7
0
        public override object Read(string path)
        {
            var    obj  = new RASPropertiesData();
            string text = Load(path);

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                switch (rootEntryNode.GetEntryIdentifier())
                {
                case "RASModel":
                    obj.RasModelName = rootEntryNode.GetBasicValString();
                    break;

                case "turbulence":
                    obj.Turbulence = rootEntryNode.GetBasicValEnum <OnOffValue>();
                    break;

                case "printCoeffs":
                    obj.PrintCoeffs = rootEntryNode.GetBasicValEnum <OnOffValue>();
                    break;
                }
            }
            return(obj);
        }
Exemple #8
0
        public override object Read(string path)
        {
            var    rawData = new pdData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                    //case "turbineArrayOn":
                    //    rawData.TurbineArrayOn = rootEntryNode.GetBasicValBool();
                    //    break;
                }
            }
            return(rawData);
        }
        public override object Read(string path)
        {
            var    obj = new AirfoilPropertiesData();
            string text;

            using (var reader = new StreamReader(path))
            {
                text = reader.ReadToEnd();
            }
            var grammar = new OpenFoamGrammar();
            var parser  = new Parser(grammar);
            var tree    = parser.Parse(text);

            obj.airfoilData = new List <Vertice>();

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var id = rootEntryNode.GetEntryIdentifier();
                if (id == "airfoilData")
                {
                    var dict = rootEntryNode.GetDictContent().ChildNodes[1];
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var array_head = dict.ChildNodes[i].ChildNodes[0].ChildNodes[1].ChildNodes;
                        var v          = new Vertice();
                        v.X = Convert.ToDecimal(array_head[0].ChildNodes[0].Token.Value);
                        v.Y = Convert.ToDecimal(array_head[1].ChildNodes[0].Token.Value);
                        v.Z = Convert.ToDecimal(array_head[2].ChildNodes[0].Token.Value);
                        obj.airfoilData.Add(v);
                    }
                }
            }
            return(obj);
        }
Exemple #10
0
        public override object Read(string path)
        {
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

            var grammar = new OpenFoamGrammar();
            var parser  = new Parser(grammar);
            var tree    = parser.Parse(txt);
            var d       = new Vertice();

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "value":
                    d.X = rootEntryNode.GetDictArrayBody().GetArrayOfDecimal()[0];
                    d.Y = rootEntryNode.GetDictArrayBody().GetArrayOfDecimal()[1];
                    d.Z = rootEntryNode.GetDictArrayBody().GetArrayOfDecimal()[2];
                    break;
                }
            }
            return(d);
        }
Exemple #11
0
        public override object Read(string path)
        {
            var    obj = new DecomposeParDictData();
            string txt = Load(path);

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "numberOfSubdomains":
                    obj.numberOfSubdomains = rootEntryNode.GetBasicValInt();
                    break;

                case "method":
                    obj.method = rootEntryNode.GetBasicValEnum <DecompositionMethod>();
                    break;

                case "hierarchicalCoeffs":
                    obj.hCoefs = GetHierarchicalCoeffs(rootEntryNode.GetDictContent());
                    break;
                }
            }
            return(obj);
        }
Exemple #12
0
        public override object Read(string path)
        {
            var    rawData = new FieldData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

            var formatMatch = Regex.Match(txt, FieldFormatRegex);

            rawData.FieldFormat = (Format)Enum.Parse(typeof(Format), formatMatch.Groups[1].Value);

            var classMatch = Regex.Match(txt, FieldClassRegex);

            rawData.FieldClass = (FieldClass)Enum.Parse(typeof(FieldClass), classMatch.Groups[1].Value);

            var locationMatch = Regex.Match(txt, FieldLocationRegex);

            rawData.FieldLocation = locationMatch.Groups[1].Value;

            var objectMatch = Regex.Match(txt, FieldObjectRegex);

            rawData.FieldObject = objectMatch.Groups[1].Value;

            var dimMatch = Regex.Match(txt, DimRegex);

            rawData.Dimensions.Mass              = decimal.Parse(dimMatch.Groups[1].Value);
            rawData.Dimensions.Length            = decimal.Parse(dimMatch.Groups[2].Value);
            rawData.Dimensions.Time              = decimal.Parse(dimMatch.Groups[3].Value);
            rawData.Dimensions.Temperature       = decimal.Parse(dimMatch.Groups[4].Value);
            rawData.Dimensions.Quantity          = decimal.Parse(dimMatch.Groups[5].Value);
            rawData.Dimensions.Current           = decimal.Parse(dimMatch.Groups[6].Value);
            rawData.Dimensions.LuminousIntensity = decimal.Parse(dimMatch.Groups[7].Value);

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "boundaryField":
                    ParsePatches(rootEntryNode.ChildNodes[2], rawData);
                    break;

                case "internalField":
                    rawData.InternalFieldType  = GetFieldType(rootEntryNode);
                    rawData.InternalFieldValue = GetFieldValue(rootEntryNode.ChildNodes[2].ChildNodes[0]);
                    break;
                }
            }
            return(rawData);
        }
        public override object Read(string path)
        {
            var    rawData = new BlockMeshDictData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "convertToMeters":
                    rawData.convertToMeters = rootEntryNode.GetBasicValDecimal();
                    break;

                case "vertices":
                    var vertices = rootEntryNode.GetDictArrayBody().GetVectorsArray();
                    rawData.vertices.AddRange(vertices);
                    break;

                case "blocks":
                    var blocks = rootEntryNode.GetDictArrayBody().GetArray(n => n);
                    rawData.MeshBlocks.vertexNumbers.AddRange(blocks[1].ChildNodes[1].GetArrayOfInt32());
                    rawData.MeshBlocks.numberOfCells.AddRange(blocks[2].ChildNodes[1].GetArrayOfInt32());
                    rawData.MeshBlocks.gradingNumbers.AddRange(blocks[4].ChildNodes[1].GetArrayOfInt32());

                    var gradingText = blocks[3].Token.Text;
                    rawData.MeshBlocks.grading = (Grading)Enum.Parse(typeof(Grading), gradingText);
                    break;

                case "boundary":
                    var boundaries = rootEntryNode.GetDictArrayBody().GetArray(ParseBoundary);
                    rawData.boundaries.AddRange(boundaries);
                    break;
                }
            }
            return(rawData);
        }
Exemple #14
0
        public override object Read(string path)
        {
            var    rawData = new AblPropertiesData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "turbineArrayOn":
                    rawData.turbineArrayOn = rootEntryNode.GetBasicValBool();
                    break;

                case "driveWindOn":
                    rawData.driveWindOn = rootEntryNode.GetBasicValBool();
                    break;

                case "UWindSpeed":
                    rawData.UWindSpeedDim = rootEntryNode.GetDimVal();
                    break;

                case "UWindDir":
                    rawData.UWindDir = rootEntryNode.GetBasicValDecimal();
                    break;

                case "hWind":
                    rawData.HWindDim = rootEntryNode.GetDimVal();
                    break;

                case "alpha":
                    rawData.alpha = rootEntryNode.GetBasicValDecimal();
                    break;

                case "lowerBoundaryName":
                    rawData.lowerBoundaryName = rootEntryNode.GetBasicValString();
                    break;

                case "upperBoundaryName":
                    rawData.upperBoundaryName = rootEntryNode.GetBasicValString();
                    break;

                case "statisticsOn":
                    rawData.statisticsOn = rootEntryNode.GetBasicValBool();
                    break;

                case "statisticsFrequency":
                    rawData.statisticsFrequency = rootEntryNode.GetBasicValDecimal();
                    break;

                case "meanAvgStartTime":
                    rawData.meanAvgStartTime = rootEntryNode.GetBasicValDecimal();
                    break;

                case "corrAvgStartTime":
                    rawData.corrAvgStartTime = rootEntryNode.GetBasicValDecimal();
                    break;
                }
            }
            return(rawData);
        }
Exemple #15
0
        public override object Read(string path)
        {
            var    turbine_prop = new TurbineArrayPropData();
            string text;

            using (var reader = new StreamReader(path))
            {
                text = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();

                if (identifier.Equals("globalProperties"))
                {
                    var dict = rootEntryNode.GetDictContent();
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var node = dict.ChildNodes[i].ChildNodes[0];
                        var id   = node.GetEntryIdentifier();
                        if (id.Equals("outputControl"))
                        {
                            turbine_prop.outputControl = node.GetBasicValEnum <OutputControl>();
                        }
                        else if (id.Equals("outputInterval"))
                        {
                            turbine_prop.outputInterval = node.GetBasicValDecimal();
                        }
                    }
                }
                else if (identifier.StartsWith("turbine"))
                {
                    var item = new TurbineInstance();
                    var dict = rootEntryNode.GetDictContent();
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var node = dict.ChildNodes[i].ChildNodes[0];
                        var id   = node.GetEntryIdentifier();
                        switch (id)
                        {
                        case "turbineType":
                            item.turbineType = node.GetBasicValString();
                            break;

                        case "baseLocation":
                            item.baseLocation   = new Vertice();
                            item.baseLocation.X = node.GetDictArrayBody().GetArrayOfDecimal()[0];
                            item.baseLocation.Y = node.GetDictArrayBody().GetArrayOfDecimal()[1];
                            item.baseLocation.Z = node.GetDictArrayBody().GetArrayOfDecimal()[2];
                            break;

                        case "numBladePoints":
                            item.numBladePoints = node.GetBasicValDecimal();
                            break;

                        case "pointDistType":
                            item.pointDistType = node.GetBasicValString();
                            break;

                        case "pointInterpType":
                            item.pointInterpType = node.GetBasicValEnum <PointInterpType>();
                            break;

                        case "bladeUpdateType":
                            item.bladeUpdateType = node.GetBasicValEnum <BladeUpdateType>();
                            break;

                        case "epsilon":
                            item.epsilon = node.GetBasicValDecimal();
                            break;

                        case "tipRootLossCorrType":
                            item.tipRootLossCorrType = node.GetBasicValEnum <TipRootLossCorrType>();
                            break;

                        case "rotationDir":
                            item.rotationDir = node.GetBasicValString();
                            break;

                        case "Azimuth":
                            item.azimuth = node.GetBasicValDecimal();
                            break;

                        case "RotSpeed":
                            item.rotSpeed = node.GetBasicValDecimal();
                            break;

                        case "Pitch":
                            item.pitch = node.GetBasicValDecimal();
                            break;

                        case "NacYaw":
                            item.nacYaw = node.GetBasicValDecimal();
                            break;

                        case "fluidDensity":
                            item.fluidDensity = node.GetBasicValDecimal();
                            break;
                        }
                    }
                    turbine_prop.turbine.Add(item);
                }
            }
            return(turbine_prop);
        }
Exemple #16
0
        public override object Read(string path)
        {
            var    rawData = new ControlDictData();
            string txt     = Load(path);

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "application":
                    rawData.application = rootEntryNode.GetBasicValEnum <ApplicationSolver>();
                    break;

                case "startFrom":
                    rawData.startFrom = rootEntryNode.GetBasicValEnum <StartFrom>();
                    break;

                case "startTime":
                    rawData.startTime = rootEntryNode.GetBasicValDecimal();
                    break;

                case "stopAt":
                    rawData.stopAt = rootEntryNode.GetBasicValEnum <StopAt>();
                    break;

                case "endTime":
                    rawData.endTime = rootEntryNode.GetBasicValDecimal();
                    break;

                case "deltaT":
                    rawData.deltaT = rootEntryNode.GetBasicValDecimal();
                    break;

                case "writeControl":
                    rawData.writeControl = rootEntryNode.GetBasicValEnum <WriteControl>();
                    break;

                case "writeInterval":
                    rawData.writeInterval = rootEntryNode.GetBasicValDecimal();
                    break;

                case "purgeWrite":
                    rawData.purgeWrite = rootEntryNode.GetBasicValDecimal();
                    break;

                case "writeFormat":
                    rawData.writeFormat = rootEntryNode.GetBasicValEnum <WriteFormat>();
                    break;

                case "writePrecision":
                    rawData.writePrecision = rootEntryNode.GetBasicValDecimal();
                    break;

                case "writeCompression":
                    rawData.writeCompression = rootEntryNode.GetBasicValEnum <WriteCompression>();
                    break;

                case "timeFormat":
                    rawData.timeFormat = rootEntryNode.GetBasicValEnum <TimeFormat>();
                    break;

                case "timePrecision":
                    rawData.timePrecision = rootEntryNode.GetBasicValDecimal();
                    break;

                case "runTimeModifiable":
                    rawData.runTimeModifiable = rootEntryNode.GetBasicValBool();
                    break;

                case "adjustTimeStep":
                    rawData.adjustTimeStep = rootEntryNode.GetBasicValEnum <FlagYesNo>();
                    break;

                case "maxCo":
                    rawData.maxCo = rootEntryNode.GetBasicValDecimal();
                    break;

                case "maxDeltaT":
                    rawData.maxDeltaT = rootEntryNode.GetBasicValDecimal();
                    break;
                }
            }
            return(rawData);
        }
Exemple #17
0
        public override object Read(string path)
        {
            var    obj = new RefineMeshDictData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }
            var grammar = new OpenFoamGrammar();
            var parser  = new Parser(grammar);
            var tree    = parser.Parse(txt);

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var    identifier = rootEntryNode.GetEntryIdentifier();
                string patch;
                switch (identifier)
                {
                case "set":
                    obj.setvalue = rootEntryNode.GetBasicValString();
                    break;

                case "coordinateSystem":
                    obj.coordsys = rootEntryNode.GetBasicValEnum <CoordinateSystem>();
                    break;

                case "globalCoeffs":
                {
                    var dict = rootEntryNode.GetDictContent();
                    obj.globalCoeffs = GetCoeffs(ref dict, out patch);
                }
                break;

                case "patchLocalCoeffs":
                {
                    var dict = rootEntryNode.GetDictContent();
                    obj.patchLocalCoeffs = GetCoeffs(ref dict, out patch);
                    obj.patch            = patch;
                }
                break;

                case "directions":
                {
                    obj.direction = new List <DirectionType>();
                    var s = rootEntryNode.ChildNodes[2].ChildNodes[1].GetArrayOfString();
                    foreach (string t in s)
                    {
                        obj.direction.Add(t.ToEnum <DirectionType>());
                    }
                }
                break;

                case "useHexTopology":
                    obj.useHexTopology = rootEntryNode.GetBasicValBool();
                    break;

                case "geometricCut":
                    obj.geometricCut = rootEntryNode.GetBasicValBool();
                    break;

                case "writeMesh":
                    obj.writeMesh = rootEntryNode.GetBasicValBool();
                    break;
                }
            }
            return(obj);
        }
        public override object Read(string path)
        {
            var    rawData = new TransportPropertiesData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "transportModel":
                    rawData.transportModel = rootEntryNode.GetBasicValEnum <TransportModel>();
                    break;

                case "nu":
                    rawData.nu = rootEntryNode.GetDimVal().ScalarValue;
                    break;

                case "TRef":
                    rawData.TRef = rootEntryNode.GetDimVal().ScalarValue;
                    break;

                case "LESModel":
                    rawData.LESModel = rootEntryNode.GetBasicValEnum <LesModel>();
                    break;

                case "Cs":
                    rawData.Cs = rootEntryNode.GetBasicValDecimal();
                    break;

                case "deltaLESCoeff":
                    rawData.deltaLESCoeff = rootEntryNode.GetBasicValDecimal();
                    break;

                case "kappa":
                    rawData.kappa = rootEntryNode.GetBasicValDecimal();
                    break;

                case "betaM":
                    rawData.betaM = rootEntryNode.GetBasicValDecimal();
                    break;

                case "gammM":
                    rawData.gammM = rootEntryNode.GetBasicValDecimal();
                    break;

                case "z0":
                    rawData.z0 = rootEntryNode.GetDimVal().ScalarValue;
                    break;

                case "q0":
                    rawData.q0 = rootEntryNode.GetDimVal().ScalarValue;
                    break;

                case "surfaceStressModel":
                    rawData.surfaceStressModel = rootEntryNode.GetBasicValEnum <SurfaceStressModel>();
                    break;

                case "betaSurfaceStress":
                    rawData.betaSurfaceStress = rootEntryNode.GetBasicValDecimal();
                    break;
                }
            }
            return(rawData);
        }
Exemple #19
0
        public override object Read(string path)
        {
            var    obj = new TurbineArrayPropFASTData();
            string text;

            using (var reader = new StreamReader(path))
            {
                text = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                if (identifier.Equals("general"))
                {
                    var dict = rootEntryNode.GetDictContent();
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var node = dict.ChildNodes[i].ChildNodes[0];
                        var id   = node.GetEntryIdentifier();
                        switch (id)
                        {
                        case "yawAngle":
                            obj.general.yawAngle = node.GetBasicValDecimal();
                            break;

                        case "numberofBld":
                            obj.general.numberofBld = node.GetBasicValInt();
                            break;

                        case "numberofBldPts":
                            obj.general.numberofBldPts = node.GetBasicValInt();
                            break;

                        case "rotorDiameter":
                            obj.general.rotorDiameter = node.GetBasicValDecimal();
                            break;

                        case "epsilon":
                            obj.general.epsilon = node.GetBasicValDecimal();
                            break;

                        case "smearRadius":
                            obj.general.smearRadius = node.GetBasicValDecimal();
                            break;

                        case "effectiveRadiusFactor":
                            obj.general.effectiveRadiusFactor = node.GetBasicValDecimal();
                            break;

                        case "pointInterpType":
                            obj.general.pointInterpType = node.GetBasicValInt();
                            break;
                        }
                    }
                }
                else if (identifier.StartsWith("turbine"))
                {
                    var instance = new TurbineInstanceFAST();
                    var dict     = rootEntryNode.GetDictContent();
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var node = dict.ChildNodes[i].ChildNodes[0];
                        var id   = node.GetEntryIdentifier();
                        switch (id)
                        {
                        case "refx":
                            instance.refx = node.GetBasicValDecimal();
                            break;

                        case "refy":
                            instance.refy = node.GetBasicValDecimal();
                            break;

                        case "refz":
                            instance.refz = node.GetBasicValDecimal();
                            break;

                        case "hubz":
                            instance.hubz = node.GetBasicValDecimal();
                            break;
                        }
                    }
                    obj.turbine.Add(instance);
                }
            }
            return(obj);
        }
Exemple #20
0
        public override object Read(string path)
        {
            var    obj  = new TurbinePropertiesData();
            string text = Load(path);

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();

                switch (identifier)
                {
                case "NumBl":
                    obj.NumBl = rootEntryNode.GetBasicValInt();
                    break;

                case "TipRad":
                    obj.TipRad = rootEntryNode.GetBasicValDecimal();
                    break;

                case "HubRad":
                    obj.HubRad = rootEntryNode.GetBasicValDecimal();
                    break;

                case "UndSling":
                    obj.UndSling = rootEntryNode.GetBasicValDecimal();
                    break;

                case "OverHang":
                    obj.OverHang = rootEntryNode.GetBasicValDecimal();
                    break;

                case "TowerHt":
                    obj.TowerHt = rootEntryNode.GetBasicValDecimal();
                    break;

                case "Twr2Shft":
                    obj.Twr2Shft = rootEntryNode.GetBasicValDecimal();
                    break;

                case "ShftTilt":
                    obj.ShftTilt = rootEntryNode.GetBasicValDecimal();
                    break;

                case "PreCone":
                {
                    var dict  = rootEntryNode.GetDictArrayBody();
                    var array = dict.GetArrayOfDecimal();
                    obj.PreCone = new Vertice(array[0], array[1], array[2]);
                }
                break;

                case "GBRatio":
                    obj.GBRatio = rootEntryNode.GetBasicValDecimal();;
                    break;

                case "GenIner":
                    obj.GenIner = rootEntryNode.GetBasicValDecimal();
                    break;

                case "HubIner":
                    obj.HubIner = rootEntryNode.GetBasicValDecimal();
                    break;

                case "BladeIner":
                    obj.BladeIner = rootEntryNode.GetBasicValDecimal();
                    break;

                case "TorqueControllerType":
                    obj.TorqueControllerType = rootEntryNode.GetBasicValEnum <ControllerType>();
                    break;

                case "YawControllerType":
                    obj.YawControllerType = rootEntryNode.GetBasicValEnum <ControllerType>();
                    break;

                case "PitchControllerType":
                    obj.PitchControllerType = rootEntryNode.GetBasicValEnum <ControllerType>();
                    break;

                case "TorqueControllerParams":
                    obj.torqueControllerParams = TorqueControllerParamsHandler(rootEntryNode.GetDictContent());
                    break;

                case "PitchControllerParams":
                    obj.pitchControllerParams = PitchControllerParamsHandler(rootEntryNode.GetDictContent());
                    break;

                case "Airfoils":
                {
                    var dict = rootEntryNode.GetDictArrayBody();
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var item = new AirfoilBlade();
                        item.AirfoilName = dict.ChildNodes[i].ChildNodes[0].Token.Text.Replace("\"", "");
                        item.Blade       = new List <Vertice>();
                        obj.airfoilBlade.Add(item);
                    }
                }
                break;

                case "BladeData":
                {
                    var dict = rootEntryNode.GetDictArrayBody();
                    for (int i = 0; i < dict.ChildNodes.Count; i++)
                    {
                        var array_head = dict.ChildNodes[i].ChildNodes[0].ChildNodes[1].ChildNodes;
                        if (array_head.Count > 3)
                        {
                            var airfoil_id = Convert.ToInt32(array_head[3].ChildNodes[0].Token.Value);
                            if ((airfoil_id >= 0) && (airfoil_id < obj.airfoilBlade.Count))
                            {
                                var blade_prop = new Vertice();
                                blade_prop.X = Convert.ToDecimal(array_head[0].ChildNodes[0].Token.Value);
                                blade_prop.Y = Convert.ToDecimal(array_head[1].ChildNodes[0].Token.Value);
                                blade_prop.Z = Convert.ToDecimal(array_head[2].ChildNodes[0].Token.Value);
                                obj.airfoilBlade[airfoil_id].Blade.Add(blade_prop);
                            }
                        }
                    }
                }
                break;
                }
            }

            return(obj);
        }
Exemple #21
0
        public override object Read(string path)
        {
            var    rawData = new SetFieldsAblDictData();
            string txt;

            using (var reader = new StreamReader(path))
            {
                txt = reader.ReadToEnd();
            }

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

            foreach (ParseTreeNode rootEntryNode in tree.Root.FindDictEntries(null))
            {
                var identifier = rootEntryNode.GetEntryIdentifier();
                switch (identifier)
                {
                case "xMax":
                    rawData.xMax = rootEntryNode.GetBasicValDecimal();
                    break;

                case "yMax":
                    rawData.yMax = rootEntryNode.GetBasicValDecimal();
                    break;

                case "zMax":
                    rawData.zMax = rootEntryNode.GetBasicValDecimal();
                    break;

                case "logInit":
                    rawData.logInit = rootEntryNode.GetBasicValBool();
                    break;

                case "deltaU":
                    rawData.deltaU = rootEntryNode.GetBasicValDecimal();
                    break;

                case "deltaV":
                    rawData.deltaV = rootEntryNode.GetBasicValDecimal();
                    break;

                case "Uperiods":
                    rawData.Uperiods = rootEntryNode.GetBasicValDecimal();
                    break;

                case "Vperiods":
                    rawData.Vperiods = rootEntryNode.GetBasicValDecimal();
                    break;

                case "zPeak":
                    rawData.zPeak = rootEntryNode.GetBasicValDecimal();
                    break;

                case "zInversion":
                    rawData.zInversion = rootEntryNode.GetBasicValDecimal();
                    break;

                case "widthInversion":
                    rawData.widthInversion = rootEntryNode.GetBasicValDecimal();
                    break;

                case "Tbottom":
                    rawData.Tbottom = rootEntryNode.GetBasicValDecimal();
                    break;

                case "Ttop":
                    rawData.Ttop = rootEntryNode.GetBasicValDecimal();
                    break;

                case "dTdz":
                    rawData.dTdz = rootEntryNode.GetBasicValDecimal();
                    break;

                case "Ug":
                    rawData.Ug = rootEntryNode.GetBasicValDecimal();
                    break;

                case "UgDir":
                    rawData.UgDir = rootEntryNode.GetBasicValDecimal();
                    break;

                case "z0":
                    rawData.z0 = rootEntryNode.GetBasicValDecimal();
                    break;

                case "kappa":
                    rawData.kappa = rootEntryNode.GetBasicValDecimal();
                    break;

                case "updateInternalFields":
                    rawData.updateInternalFields = rootEntryNode.GetBasicValBool();
                    break;

                case "updateBoundaryFields":
                    rawData.updateBoundaryFields = rootEntryNode.GetBasicValBool();
                    break;
                }
            }
            return(rawData);
        }