Files
wg_cpso/CPSO/Forms/51_Step/Controls/ViewTimeIncrementationStepControlParameter.cs

175 lines
7.7 KiB
C#
Raw Permalink Normal View History

2026-03-25 18:20:24 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DynamicTypeDescriptor;
using System.ComponentModel;
using CaeGlobals;
namespace CPSO.PropertyViews
{
[Serializable]
public class ViewTimeIncrementationStepControlParameter : ViewStepControlParameter
{
// Variables
private CaeModel.TimeIncrementationStepControlParameter _parameter;
// Properties
[Browsable(false)]
public override string Name
{
get { return "Time Incrementation"; }
}
//
[Category("Integer")]
[OrderedDisplayName(0, 20, "I0")]
[Description("Iteration after which a check is made whether the residuals increase in two consecutive " +
"iterations (default: 4). If so, the increment is reattempted with Df times its size.")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(1, 1)]
public int I0 { get { return _parameter.I0; } set { _parameter.I0 = value; } }
//
[Category("Integer")]
[OrderedDisplayName(1, 20, "IR")]
[Description("Iteration after which a logarithmic convergence check is performed in each iteration " +
"(default: 8). If more than IC iterations are needed, the increment is reattempted with " +
"DC its size.")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(2, 1)]
public int IR { get { return _parameter.IR; } set { _parameter.IR = value; } }
//
[Category("Integer")]
[OrderedDisplayName(2, 20, "IP")]
[Description("Iteration after which the residual tolerance Rpα is used instead of Rnα (default: 9).")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(3, 1)]
public int IP { get { return _parameter.IP; } set { _parameter.IP = value; } }
//
[Category("Integer")]
[OrderedDisplayName(3, 20, "IC")]
[Description("Maximum number of iterations allowed (default: 16).")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(4, 1)]
public int IC { get { return _parameter.IC; } set { _parameter.IC = value; } }
//
[Category("Integer")]
[OrderedDisplayName(4, 20, "IL")]
[Description("Number of iterations after which the size of the subsequent increment will be reduced " +
"(default: 10).")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(5, 1)]
public int IL { get { return _parameter.IL; } set { _parameter.IL = value; } }
//
[Category("Integer")]
[OrderedDisplayName(5, 20, "IG")]
[Description("Maximum number of iterations allowed in two consecutive increments for the size of the " +
"next increment to be increased (default: 4).")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(6, 1)]
public int IG { get { return _parameter.IG; } set { _parameter.IG = value; } }
//
[Category("Integer")]
[OrderedDisplayName(6, 20, "IS")]
[Description("Currently not used.")]
[Id(7, 1)]
public string IS { get { return "Currently not used"; } }
//
[Category("Integer")]
[OrderedDisplayName(7, 20, "IA")]
[Description("Maximum number of cutbacks per increment (default: 5). A cutback is a reattempted " +
"increment.")]
[TypeConverter(typeof(StringIntegerConverter))]
[Id(8, 1)]
public int IA { get { return _parameter.IA; } set { _parameter.IA = value; } }
//
[Category("Integer")]
[OrderedDisplayName(8, 20, "IJ")]
[Description("Currently not used.")]
[Id(9, 1)]
public string IJ { get { return "Currently not used"; } }
//
[Category("Integer")]
[OrderedDisplayName(9, 20, "IT")]
[Description("Currently not used.")]
[Id(10, 1)]
public string IT { get { return "Currently not used"; } }
//
[Category("Double")]
[OrderedDisplayName(0, 20, "Df")]
[Description("Cutback factor if the solution seems to diverge (default: 0.25).")]
[TypeConverter(typeof(StringDoubleConverter))]
[Id(1, 2)]
public double Df { get { return _parameter.Df; } set { _parameter.Df = value; } }
//
[Category("Double")]
[OrderedDisplayName(1, 20, "DC")]
[Description("Cutback factor if the logarithmic extrapolation predicts too many iterations " +
"(default: 0.5).")]
[TypeConverter(typeof(StringDoubleConverter))]
[Id(2, 2)]
public double DC { get { return _parameter.DC; } set { _parameter.DC = value; } }
//
[Category("Double")]
[OrderedDisplayName(2, 20, "DB")]
[Description("Cutback factor for the next increment if more than IL iterations were needed " +
"in the current increment (default: 0.75).")]
[TypeConverter(typeof(StringDoubleConverter))]
[Id(3, 2)]
public double DB { get { return _parameter.DB; } set { _parameter.DB = value; } }
//
[Category("Double")]
[OrderedDisplayName(3, 20, "DA")]
[Description("Cutback factor if the temperature change in two subsequent increments exceeds " +
" DELTMX (default: 0.85).")]
[TypeConverter(typeof(StringDoubleConverter))]
[Id(4, 2)]
public double DA { get { return _parameter.DA; } set { _parameter.DA = value; } }
//
[Category("Double")]
[OrderedDisplayName(4, 20, "DS")]
[Description("Currently not used.")]
[Id(5, 2)]
public string DS { get { return "Currently not used"; } }
//
[Category("Double")]
[OrderedDisplayName(5, 20, "DH")]
[Description("Currently not used.")]
[Id(6, 2)]
public string DH { get { return "Currently not used"; } }
//
[Category("Double")]
[OrderedDisplayName(6, 20, "DD")]
[Description("Factor by which the next increment will be increased if less than IG iterations " +
"are needed in two consecutive increments (default: 1.5).")]
[TypeConverter(typeof(StringDoubleConverter))]
[Id(7, 2)]
public double DD { get { return _parameter.DD; } set { _parameter.DD = value; } }
//
[Category("Double")]
[OrderedDisplayName(7, 20, "WG")]
[Description("Currently not used.")]
[Id(8, 2)]
public string WG { get { return "Currently not used"; } }
//
[Browsable(false)]
public override CaeModel.StepControlParameter Base
{
get { return _parameter; }
}
// Constructors
public ViewTimeIncrementationStepControlParameter(CaeModel.TimeIncrementationStepControlParameter parameter)
{
_parameter = parameter;
//
base.DynamicCustomTypeDescriptor = ProviderInstaller.Install(this);
}
// Methods
}
}