public BoundaryCondition(Node n, bcType t, double displacement) { this.displacement = displacement; this.node = n; if (t == bcType.xDisplacement) { this.index = n.u_index; this.type = "dx=" + this.displacement.ToString(); } if (t == bcType.yDisplacement) { this.index = n.v_index; this.type = "dy=" + this.displacement.ToString(); } if (t == bcType.zDisplacement) { this.index = n.w_index; this.type = "dz=" + this.displacement.ToString(); } BoundaryCondition.all.Add(this); }
public void addBC(double x, double y, bcType t) { Node n = Node.getNode(x, y); if (t == bcType.fix) { new BoundaryCondition(n, bcType.xDisplacement, 0); new BoundaryCondition(n, bcType.yDisplacement, 0); new BoundaryCondition(n, bcType.zDisplacement, 0); } if (t == bcType.rollerX) { new BoundaryCondition(n, bcType.yDisplacement, 0); } if (t == bcType.rollerY) { new BoundaryCondition(n, bcType.xDisplacement, 0); } if (t == bcType.pin) { new BoundaryCondition(n, bcType.xDisplacement, 0); new BoundaryCondition(n, bcType.yDisplacement, 0); } }
// create boundary conditions public void addBC(double x, double y, bcType t, double displacement) { Node n = Node.getNode(x, y); new BoundaryCondition(n, t, displacement); }
public inputTxtReader(string fileName, Problem p) { string[] lines = System.IO.File.ReadAllLines(fileName); string line; string[] pars; for (int i = 0; i < lines.Length; i++) { line = lines[i]; // ignore blank lines if (line == "") { line = "#\n"; } // ignore lines starting with # if (line[0] != '#') { line = line.Substring(0, line.Length - 1).Replace(" ", string.Empty); //remove last ( and spaces // debug mode if (line.Substring(0, 6) == "debug(") { line = line.Substring(6); if (line == "false") { p.debug = false; } else { p.debug = true; } line = "###############"; } // add element if (line.Substring(0, 11) == "addElement(") { line = line.Substring(11); pars = line.Split(','); if (pars[0] == "frame") { p.addElement(pars[0], double.Parse(pars[1], CultureInfo.InvariantCulture), double.Parse(pars[2], CultureInfo.InvariantCulture), double.Parse(pars[3], CultureInfo.InvariantCulture), double.Parse(pars[4], CultureInfo.InvariantCulture), double.Parse(pars[5], CultureInfo.InvariantCulture), double.Parse(pars[6], CultureInfo.InvariantCulture), double.Parse(pars[7], CultureInfo.InvariantCulture)); } if (pars[0] == "truss") { p.addElement(pars[0], double.Parse(pars[1], CultureInfo.InvariantCulture), double.Parse(pars[2], CultureInfo.InvariantCulture), double.Parse(pars[3], CultureInfo.InvariantCulture), double.Parse(pars[4], CultureInfo.InvariantCulture), double.Parse(pars[5], CultureInfo.InvariantCulture), double.Parse(pars[6], CultureInfo.InvariantCulture)); } if (pars[0] == "spring") { p.addElement(pars[0], double.Parse(pars[1], CultureInfo.InvariantCulture), double.Parse(pars[2], CultureInfo.InvariantCulture), double.Parse(pars[3], CultureInfo.InvariantCulture), double.Parse(pars[4], CultureInfo.InvariantCulture), double.Parse(pars[5], CultureInfo.InvariantCulture)); } line = "###############"; } // add BC if (line.Substring(0, 6) == "addBC(") { line = line.Substring(6); pars = line.Split(','); bcType t = bcType.fix; double value = 0.0; if (pars[2] == "fix") { t = bcType.fix; } if (pars[2] == "rollerX") { t = bcType.rollerX; } if (pars[2] == "rollerY") { t = bcType.rollerY; } if (pars[2] == "pin") { t = bcType.pin; } if (pars[2] == "xDisplacement") { t = bcType.xDisplacement; value = double.Parse(pars[3], CultureInfo.InvariantCulture); } if (pars[2] == "yDisplacement") { t = bcType.yDisplacement; value = double.Parse(pars[3], CultureInfo.InvariantCulture); } if (pars[2] == "zDisplacement") { t = bcType.zDisplacement; value = double.Parse(pars[3], CultureInfo.InvariantCulture); } if (pars.Length == 3) { p.addBC(double.Parse(pars[0], CultureInfo.InvariantCulture), double.Parse(pars[1], CultureInfo.InvariantCulture), t); } if (pars.Length == 4) { p.addBC(double.Parse(pars[0], CultureInfo.InvariantCulture), double.Parse(pars[1], CultureInfo.InvariantCulture), t, value); } line = "###############"; } // add forces if (line.Substring(0, 9) == "addForce(") { line = line.Substring(9); pars = line.Split(','); bool rad = false; if (pars[pars.Length - 1] == "false") { rad = false; } else { rad = true; } if (pars.Length == 5) // concentrated force { p.addForce(double.Parse(pars[0], CultureInfo.InvariantCulture), double.Parse(pars[1], CultureInfo.InvariantCulture), double.Parse(pars[2], CultureInfo.InvariantCulture), double.Parse(pars[3], CultureInfo.InvariantCulture), rad); } if (pars.Length == 9) // distributed force { p.addForce(double.Parse(pars[0], CultureInfo.InvariantCulture), double.Parse(pars[1], CultureInfo.InvariantCulture), double.Parse(pars[2], CultureInfo.InvariantCulture), double.Parse(pars[3], CultureInfo.InvariantCulture), double.Parse(pars[4], CultureInfo.InvariantCulture), double.Parse(pars[5], CultureInfo.InvariantCulture), double.Parse(pars[6], CultureInfo.InvariantCulture), double.Parse(pars[7], CultureInfo.InvariantCulture), rad); } line = "###############"; } if (line.Substring(0, 10) == "addMoment(") { line = line.Substring(10); pars = line.Split(','); p.addMoment(double.Parse(pars[0], CultureInfo.InvariantCulture), double.Parse(pars[1], CultureInfo.InvariantCulture), double.Parse(pars[2], CultureInfo.InvariantCulture)); line = "###############"; } } } }