private void readModalCase(XmlNode node)
{
string name = readAttribute(node, "Case", "").Trim();
name = (name.Length > 0) ? name : Culture.Get("Case");
AnalysisCase aCase = null;
foreach (AnalysisCase ac in model.AbstractCases)
if (name.Equals(ac.Name))
{
aCase = ac;
break;
}
if (aCase != null)
{
ModalCaseProps mcp = aCase.Properties as ModalCaseProps;
if (mcp == null)
{
mcp = new ModalCaseProps();
aCase.Properties = mcp;
}
mcp.ModesType = ModalCaseProps.ModesMethod.RitzVectors;
List<ModalCaseFactor> list = mcp.Loads;
bool isAccel = readAttribute(node, "LoadType", "Accel").Equals("Accel"); // else "Load Case"
AnalysisCaseAppliedLoad load = null;
if (isAccel)
{
string tmp = readAttribute(node, "LoadName", "Accel ").Substring(6);
load = new AccelLoad((AccelLoad.AccelLoadValues)Enum.Parse(typeof(AccelLoad.AccelLoadValues), tmp));
}
else
{
load = model.LoadCases[readAttribute(node, "LoadName", ((LoadCase)load).Name)];
}
ModalCaseFactor f = Contains(list, load);
if (f == null)
{
f = new ModalCaseFactor(load);
list.Add(f);
}
f.Cycles = int.Parse(readAttribute(node, "MaxCycles", f.Cycles.ToString()));
f.Ratio = float.Parse(readAttribute(node, "TargetPar", f.Ratio.ToString()));
mcp.Loads = list;
}
}