Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

23.3.0 #1013

Merged
merged 37 commits into from
May 31, 2024
Merged

23.3.0 #1013

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
f0f4205
Update GlobalAssemblyInfo.cs
Marco-Pellegrino May 3, 2024
60bbc59
:bug: add more than one moving load
Marco-Pellegrino May 7, 2024
34eb1f4
Create Practical example - Bridge variable section.zip
Marco-Pellegrino May 8, 2024
f67807c
:sparkles: Masses
Marco-Pellegrino May 9, 2024
998b3f4
Update Program.cs
Marco-Pellegrino May 9, 2024
054fed9
:bug: Comb
Marco-Pellegrino May 9, 2024
2043b91
Update Stability.cs
Marco-Pellegrino May 9, 2024
d8ade10
wip - Analysis updated, GroundAcc added
lorinczandrea May 6, 2024
8de21b9
wip - new .fdscript features have been implemented
lorinczandrea May 8, 2024
2ba4e62
wip - minor changes
lorinczandrea May 8, 2024
3a2d4c4
wip - Analysis & CombSettings GH components updated, ExForce GH compo…
lorinczandrea May 8, 2024
6df103b
new icons
lorinczandrea May 9, 2024
fdc1c92
wip - test
lorinczandrea May 9, 2024
7e86eea
:sparkles: surface support motion
Marco-Pellegrino May 10, 2024
143bd9b
wip - NoCalc update
lorinczandrea May 10, 2024
1a31f68
wip - update default value
lorinczandrea May 13, 2024
378c3c8
:pencil2: description
Marco-Pellegrino May 14, 2024
bdf8aa5
serialization issue
lorinczandrea May 14, 2024
093e493
Merge remote-tracking branch 'origin/1001-1004_AnalysisSettingUpdates…
Marco-Pellegrino May 15, 2024
481330a
default values
Marco-Pellegrino May 15, 2024
09e2d33
:pencil2: description
Marco-Pellegrino May 15, 2024
5c2a1ff
Update logic for automatic value
Marco-Pellegrino May 15, 2024
93bbed7
:bug: test failed
Marco-Pellegrino May 15, 2024
5967131
examples update
lorinczandrea May 17, 2024
3768a39
Merge branch '1001-1004_AnalysisSettingUpdates' into 23.3.0_Dev
lorinczandrea May 21, 2024
01453f2
Squashed commit of the following: #1024
lorinczandrea May 23, 2024
4079769
Squashed commit of the following:
lorinczandrea May 23, 2024
db75d94
Squashed commit of the following: #994 Update material library
lorinczandrea May 27, 2024
02e2efc
Squashed commit of the following: #1024 Update model deconstruct output
lorinczandrea May 27, 2024
ae43725
Squashed commit of the following: #1023 Update Model.Deconstruct output
lorinczandrea May 27, 2024
ff29100
:sparkles: excitation load
Marco-Pellegrino May 28, 2024
a9a0d46
:bug: unit test fixed
Marco-Pellegrino May 29, 2024
bcff424
Squashed commit of the following: #993 Config file obj updates
lorinczandrea May 29, 2024
b44e086
Squashed commit of the following: #1022 Update GH comp description
lorinczandrea May 29, 2024
7fd95a4
:pencil: GetFea
Marco-Pellegrino May 31, 2024
9f72b36
:truck: cleaning
Marco-Pellegrino May 31, 2024
c726b27
Update FemDesign.Core.csproj
Marco-Pellegrino May 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
300 changes: 232 additions & 68 deletions FemDesign.Core/Calculate/Analysis.cs

Large diffs are not rendered by default.

20 changes: 0 additions & 20 deletions FemDesign.Core/Calculate/Comb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace FemDesign.Calculate

/// <summary>
/// fdscript.xsd
/// ANALCOMB
/// </summary>
public partial class Comb
{
Expand Down Expand Up @@ -114,25 +113,6 @@ public Comb()

}

[Obsolete("Use the other constructor. It will be removed in 23.3.0", false)]
public Comb(int _NLEmaxiter = 30, int _PLdefloadstep = 20, int _PLminloadstep = 2, int _PLmaxeqiter = 30, bool _NLSMohr = true, int _NLSinitloadstep = 10, int _NLSminloadstep = 10, int _NLSactiveelemratio = 5, int _NLSplasticelemratio = 5, int _CRloadstep = 20, int _CRmaxiter = 30, int _CRstifferror = 2, List<CombItem> combItem = null)
{
this.NLEmaxiter = _NLEmaxiter;
this.PLdefloadstep = _PLdefloadstep;
this.PLminloadstep = _PLminloadstep;
this.PLmaxeqiter = _PLmaxeqiter;
this.NLSMohr = _NLSMohr;
this.NLSinitloadstep = _NLSinitloadstep;
this.NLSminloadstep = _NLSminloadstep;
this.NLSactiveelemratio = _NLSactiveelemratio;
this.NLSplasticelemratio = _NLSplasticelemratio;
this.CRloadstep = _CRloadstep;
this.CRmaxiter = _CRmaxiter;
this.CRstifferror = _CRstifferror;

this.CombItem = combItem ?? new List<CombItem>();
}

public Comb(int nLEmaxiter = 30, int pLdefloadstep = 20, int pLminloadstep = 2, bool plKeepLoadStep = true, int plTolerance = 1, int pLmaxeqiter = 50, int plShellLayers = 10, bool nLSMohr = true, int nLSinitloadstep = 10, int nLSminloadstep = 10, int nLSactiveelemratio = 5, int nLSplasticelemratio = 5, int cRloadstep = 20, int cRmaxiter = 30, int cRstifferror = 2, List<CombItem> combItem = null)
{
NLEmaxiter = nLEmaxiter;
Expand Down
104 changes: 88 additions & 16 deletions FemDesign.Core/Calculate/CombItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,72 +13,129 @@ namespace FemDesign.Calculate
[System.Serializable]
public partial class CombItem
{
[XmlAttribute("Calc")]
public int _calc { get; set; } = 1;

/// <summary>
/// Calculate load combination (linear analysis).
/// </summary>
[XmlIgnore]
public bool Calc
{
get
{
return Convert.ToBoolean(_calc);
}
set
{
_calc = Convert.ToInt32(value);
if(!value)
{
NLE = PL = NLS = Cr = f2nd = false;
}
}
}

/// <summary>
/// Write only property. If true, no calculations will be executed for load combinations.
/// </summary>
[XmlIgnore]
public bool NoCalc
{
set
{
Calc = !value;
}
}

[XmlAttribute("NLE")]
public bool _nle { get; set; }
public int _nle { get; set; }

/// <summary>
/// Consider elastic nonlinear behaviour of structural elements.
/// </summary>
[XmlIgnore]
public bool NLE
{
get { return _nle; }
set { _nle = value; }
get
{
return Convert.ToBoolean(_nle);
}
set
{
_nle = Convert.ToInt32(value);
if(!value)
PL = false;
}
}


[XmlAttribute("PL")]
public bool _pl { get; set; }
public int _pl { get; set; }

/// <summary>
/// Consider plastic behaviour of structural elements.
/// </summary>
[XmlIgnore]
public bool PL
{
get { return _pl; }
set { _pl = value; }
get
{
return Convert.ToBoolean(_pl);
}
set
{
_pl = Convert.ToInt32(value);
if (value) NLE = true;
}
}


[XmlAttribute("NLS")]
public bool _nls { get; set; }
public int _nls { get; set; }

/// <summary>
/// Consider nonlinear behaviour of soil.
/// </summary>
[XmlIgnore]
public bool NLS
{
get { return _nls; }
set { _nls = value; }
get { return Convert.ToBoolean(_nls); }
set { _nls = Convert.ToInt32(value); }
}

[XmlAttribute("Cr")]
public bool _cr { get; set; }
public int _cr { get; set; }

/// <summary>
/// Cracked section analysis. Note that Cr only executes properly in RCDesign with DesignCheck set to true.
/// </summary>
[XmlIgnore]
public bool Cr
{
get { return _cr; }
set { _cr = value; }
get
{
return Convert.ToBoolean(_cr);
}
set
{
_cr = Convert.ToInt32(value);
if (value) PL = false;
}
}


[XmlAttribute("f2nd")]
public bool _f2nd { get; set; }
public int _f2nd { get; set; }

/// <summary>
/// 2nd order analysis.
/// </summary>
[XmlIgnore]
public bool f2nd
{
get { return _f2nd; }
set { _f2nd = value; }
get { return Convert.ToBoolean(_f2nd); }
set { _f2nd = Convert.ToInt32(value); }
}


Expand Down Expand Up @@ -119,7 +176,7 @@ private CombItem()
/// <param name="Cr">Cracked section analysis. Note that Cr only executes properly in RCDesign with DesignCheck set to true.</param>
/// <param name="f2nd">2nd order analysis.</param>
/// <param name="Im">Imperfection shape for 2nd order analysis.</param>
/// <param name="amplitude">Ground water level.</param>
/// <param name="amplitude">Amplitude of selected imperfection shape.</param>
/// <param name="waterlevel">Ground water level.</param>
// <param name="Amplitude">Amplitude of selected imperfection shape.</param> // TODO Amplitude?
public CombItem(int impfRqd = 0, int stabReq = 0, bool NLE = true, bool PL = true, bool NLS = false, bool Cr = false, bool f2nd = false, int Im = 0, double amplitude = 0.0, int waterlevel = 0)
Expand All @@ -136,6 +193,21 @@ public CombItem(int impfRqd = 0, int stabReq = 0, bool NLE = true, bool PL = tru
this.StabRqd = stabReq;
}

/// <summary>
/// Load combination-specific settings for calculations.
/// </summary>
/// <param name="combName">Load combination name.</param>
/// <param name="impfRqd">Required imperfection shapes.</param >
/// <param name="stabReq">Required buckling shapes for stability analysis.</param>
/// <param name="NLE">Consider elastic nonlinear behaviour of structural elements.</param>
/// <param name="PL">Consider plastic behaviour of structural elements.</param>
/// <param name="NLS">Consider nonlinear behaviour of soil.</param>
/// <param name="Cr">Cracked section analysis. Note that Cr only executes properly in RCDesign with DesignCheck set to true.</param>
/// <param name="f2nd">2nd order analysis.</param>
/// <param name="Im">Imperfection shape for 2nd order analysis.</param>
/// <param name="amplitude">Amplitude of selected imperfection shape.</param>
/// <param name="waterlevel">Ground water level.</param>
// <param name="Amplitude">Amplitude of selected imperfection shape.</param> // TODO Amplitude?
public CombItem(string combName, int impfRqd = 0, int stabReq = 0, bool NLE = true, bool PL = true, bool NLS = false, bool Cr = false, bool f2nd = false, int Im = 0, double amplitude = 0.0, int waterlevel = 0)
{
this.CombName = combName;
Expand Down
135 changes: 135 additions & 0 deletions FemDesign.Core/Calculate/ExcitationForce.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
// https://strusoft.com/
using FemDesign.GenericClasses;
using System;
using System.Xml.Serialization;

namespace FemDesign.Calculate
{
/// <summary>
/// fdscript.xsd
/// </summary>
public partial class ExcitationForce
{
[XmlAttribute("nres")]
public int _timeStep = 5;
[XmlIgnore]
public int TimeStep
{
get
{
return this._timeStep;
}
set
{
this._timeStep = value;
}
}

[XmlAttribute("tcend")]
public double _lastMomentOfThCalc = 20.0;
[XmlIgnore]
public double LastMomentOfThCalc
{
get
{
return this._lastMomentOfThCalc;
}
set
{
this._lastMomentOfThCalc = value;
}
}

[XmlAttribute("method")]
public int _method = 0;
[XmlIgnore]
public IntegrationSchemeMethod Method
{
get
{
return (IntegrationSchemeMethod)_method;
}
set
{
this._method = (int)value;
}
}

[XmlAttribute("alpha")]
public double _alpha = 0.0;
[XmlIgnore]
public double Alpha
{
get
{
return this._alpha;
}
set
{
this._alpha = value;
}
}

[XmlAttribute("beta")]
public double _beta = 0.0;
[XmlIgnore]
public double Beta
{
get
{
return this._beta;
}
set
{
this._beta = value;
}
}

[XmlAttribute("ksi")]
public double _dmpFactor = 5.0;
[XmlIgnore]
public double DmpFactor
{
get
{
return this._dmpFactor;
}
set
{
this._dmpFactor = value;
}
}

/// <summary>
/// Parameterless constructor for serialization.
/// </summary>
public ExcitationForce()
{

}

/// <summary>
/// Define calculation parameters for excitation force calculation.
/// </summary>
/// <param name="step">The number of every nth time steps when results are saved during the calculation.</param>
/// <param name="lastMoment">Last time moment of the time history calculation [s].</param>
/// <param name="method">Integration scheme method type.</param>
/// <param name="alpha">'alpha' coefficient in the Rayleigh damping matrix.</param>
/// <param name="beta">'beta' coefficient in the Rayleigh damping matrix.</param>
/// <param name="dampingFactor">'ksi' damping factor.</param>
public ExcitationForce(int step = 5, double lastMoment = 20.0, IntegrationSchemeMethod method = IntegrationSchemeMethod.Newmark, double alpha = 0, double beta = 0, double dampingFactor = 5.0)
{
this.TimeStep = step;
this.LastMomentOfThCalc = lastMoment;
this.Method = method;
this.Alpha = alpha;
this.Beta = beta;
this.DmpFactor = dampingFactor;
}

public static ExcitationForce Default()
{
return new ExcitationForce(5, 20.0, IntegrationSchemeMethod.Newmark, 0, 0, 5.0);
}
}
}
Loading
Loading