Time History Case
Damping Control
Modal Damping
Constructor
TH.Damping.Modal(dampRatioAllMode=0.05, ModeDampingOverrides=None)
Constructs Damping control with Modal damping
Parameters
dampRatioAllMode: Damping ratio applied to all modes. Default is0.05(5% damping).ModeDampingOverrides: Optional list of(ModeNumber, DampingRatio)tuples to override the damping ratio for specific modes, e.g.[(1, 0.006), (2, 0.007)].
Example
damp = TH.Damping.Modal(
dampRatioAllMode=0.05,
ModeDampingOverrides=[(1, 0.006), (2, 0.007)]
)
TH.Case.LinearModal(Name="TH_1", damping_control=damp)
Mass and Stiffness Proportional Damping
Constructor
TH.Damping.MassStiffness(inpType=1, massProp=None, stiffProp=None, freq1=None, damp1=0, freq2=None, damp2=0, period1=None, period2=None)
Constructs Damping control with Mass & Stiffness (Rayleigh) Proportional damping
Parameters
inpType: Damping input method/type.
     1 : Constant (Direct Specification) | 2 : Frequency-Proportional (Calc. from Frequency/Period)massProp: Mass proportional damping coefficient. Used wheninpType=1.stiffProp: Stiffness proportional damping coefficient. Used wheninpType=1.freq1: First reference frequency for damping calculation. Used wheninpType=2.damp1: Damping ratio corresponding tofreq1(orperiod1).freq2: Second reference frequency for damping calculation. Used wheninpType=2.damp2: Damping ratio corresponding tofreq2(orperiod2).period1: First reference period for damping calculation. Alternative tofreq1— used wheninpType=2.period2: Second reference period for damping calculation. Alternative tofreq2— used wheninpType=2.
Provide either
freq1/freq2orperiod1/period2, not both.
Example
# Constant Mass & Stiffness Proportional damping
damp1 = TH.Damping.MassStiffness(inpType=1, massProp=0, stiffProp=0)
# Frequency-Proportional damping, by frequency
damp2 = TH.Damping.MassStiffness(
inpType=2, freq1=1, damp1=0.05, freq2=5, damp2=0.05
)
TH.Case.LinearDirectInt(Name="TH_2", damping_control=damp1, time_integration_params="CONSTANT")
Strain Energy Proportional Damping
Constructor
TH.Damping.StrainEnergy()
Constructs Damping control with Strain Energy Proportional damping
Example
damp = TH.Damping.StrainEnergy()
TH.Case.LinearModal(Name="TH_3", damping_control=damp)
Element Mass and Stiffness Proportional Damping
Constructor
TH.Damping.ElementMassStiffness()
Constructs Damping control with Element-Level Mass & Stiffness Proportional damping
Example
damp = TH.Damping.ElementMassStiffness()
TH.Case.LinearModal(Name="TH_4", damping_control=damp)
Load Control
Initial Load (Global Control)
Constructor
TH.InitialLoad_Control(Use_Initial_Load=True, Cumulate_DVA_Results=False, Keep_Final_Step_Loads_Constant=False, Geometricnonlinearity_type=False)
Constructs a starting condition control that begins the case from the Initial Load (Global Control) condition
Parameters
Use_Initial_Load: Whether to use the Initial Load (Global Control) option.Cumulate_DVA_Results: Cumulate the Displacement/Velocity/Acceleration results. Applied only whenUse_Initial_Load=True.Keep_Final_Step_Loads_Constant: Keep the loads of the final step constant for the remainder of the analysis. Applied only whenUse_Initial_Load=True.Geometricnonlinearity_type: Geometric nonlinearity control.
     False : Standard | True : Large Displacement
Example
ilc = TH.InitialLoad_Control(
Use_Initial_Load=True,
Cumulate_DVA_Results=True,
Keep_Final_Step_Loads_Constant=False
)
TH.Case.NonLinearDirectInt(
Name="TH_Seismic_2",
endTime=30,
timeIncrement=0.001,
subsequent_control=ilc,
damping_control=TH.Damping.MassStiffness(inpType=1, massProp=0, stiffProp=0),
time_integration_params="CONSTANT"
)
Subsequent Control
Constructor
TH.Subsequent_Control(load_case=None, Initial_element_forces_table=False, Initial_forces_geometric_stiffness=False, Geometricnonlinearity_type=False)
Constructs Subsequent Control data.
Parameters
load_case: List[LoadCaseType, LoadCaseName]identifying the preceding load case to continue from, e.g.["ST", "SIDL"]. IfLoadCaseTypeis"TH", two optional input can be add in list:[LoadCaseType, LoadCaseName, Cumulate_DVA_Results, Keep_Final_Step_Loads_Constant].Initial_element_forces_table: Continue from the Initial Element Forces (Table). Only valid whenGeometricnonlinearity_type=False.Initial_forces_geometric_stiffness: Continue using Initial Forces for Geometric Stiffness. Only valid whenGeometricnonlinearity_type=True.Geometricnonlinearity_type: Geometric nonlinearity control.
     False : Standard | True : Large Displacement
Example
# 1.With the Static Load Case
sc1 = TH.Subsequent_Control(load_case=["ST", "Case Name"])
TH.Case.LinearModal(Name="TH_A", THtype="Periodic", subsequent_control=sc1)
# 2. With the Initial Element Forces (Table)
sc2 = TH.Subsequent_Control(Initial_element_forces_table=True)
TH.Case.LinearModal(Name="TH_B", THtype="Periodic", subsequent_control=sc2)
Nonlinear Iteration Control
Constructor
TH.NonlinearIteration_Control(Maximum_Iteration=10, Minimum_Step_Size=1e-05, Max_num_of_sub_steps=10, Displacement_norm=None, Force_norm=None, Energy_norm=None, Startline_search_Iteration=None, Runge_kutta_method="FEHLBERG", Tolerance=1e-08, Check_Convergence=True)
Constructs the nonlinear iteration/convergence settings used by nonlinear Time History cases
Parameters
Maximum_Iteration: Maximum number of iterations per step.Minimum_Step_Size: Minimum allowable sub-step size. Not applied forNonLinearStaticcases.Max_num_of_sub_steps: Maximum number of sub-steps.Displacement_norm: Convergence tolerance for the displacement norm. If None, the displacement norm check is disabled.Force_norm: Convergence tolerance for the force norm. If None, the force norm check is disabled.Energy_norm: Convergence tolerance for the energy norm. If None, the energy norm check is disabled.Startline_search_Iteration: Iteration number at which line search begins. If None, line search is disabled.Runge_kutta_method: Runge-Kutta integration method.
     'FEHLBERG' | 'CASHKARP'Tolerance: Convergence tolerance.Check_Convergence: Enables convergence checking.
Example
nl_iter = TH.NonlinearIteration_Control(
Maximum_Iteration=10,
Minimum_Step_Size=1e-05,
Displacement_norm=0.001,
Force_norm=0.001,
Runge_kutta_method="FEHLBERG",
Tolerance=1e-08,
Check_Convergence=False
)
TH.Case.NonLinearModal(
Name="TH_NL_1",
endTime=22,
timeIncrement=0.0001,
damping_control=TH.Damping.Modal(dampRatioAllMode=0.0106079),
NonlinearIteration_Control=nl_iter
)
Case
Linear Modal
Constructor
TH.Case.LinearModal(Name, THtype='Transient', endTime=1, timeIncrement=0.01, stepIncOutput=1, subsequent_control=None, damping_control=None, id=None)
Constructs a Linear Time History Load Case
Parameters
Name: Name of the time history load case.THtype: Time history analysis type.
     'Transient' | 'Periodic'endTime: Analysis end time.timeIncrement: Time step increment.stepIncOutput: Output every N-th step.subsequent_control: Starting condition control object —TH.InitialLoad_ControlorTH.Subsequent_Control.damping_control: Damping control object —TH.Damping.Modal,.MassStiffness,.StrainEnergy, or.ElementMassStiffness.id: Manually assign an ID. If None, ID will be auto-assigned.
Example
TH.Case.LinearModal(
Name="TH_Modal_1",
THtype="Transient",
endTime=42,
timeIncrement=0.0001,
stepIncOutput=1,
subsequent_control=None,
damping_control=TH.Damping.Modal(dampRatioAllMode=0.0106079)
)
TH.Case.create()
Nonlinear Modal
Constructor
TH.Case.NonLinearModal(Name, endTime=1, timeIncrement=0.01, stepIncOutput=1, subsequent_control=None, damping_control=None, NonlinearIteration_Control=None, id=None)
Constructs a Nonlinear Time History Load Case (Transient only)
Parameters
Name: Name of the time history load case.endTime: Analysis end time.timeIncrement: Time step increment.stepIncOutput: Output every N-th step.subsequent_control: Starting condition control object —TH.InitialLoad_ControlorTH.Subsequent_Control.damping_control: Damping control object.NonlinearIteration_Control: Nonlinear iteration control object —TH.NonlinearIteration_Control.id: Manually assign an ID. If None, ID will be auto-assigned.
Example
TH.Case.NonLinearModal(
Name="TH_NLModal_1",
endTime=32,
timeIncrement=0.0001,
stepIncOutput=1,
subsequent_control=None,
damping_control=TH.Damping.Modal(dampRatioAllMode=0.0106079),
NonlinearIteration_Control=TH.NonlinearIteration_Control(
Maximum_Iteration=10,
Displacement_norm=0.001,
Check_Convergence=False
)
)
TH.Case.create()
Linear Direct Integration
Constructor
TH.Case.LinearDirectInt(Name, endTime=1, timeIncrement=0.01, stepIncOutput=1, subsequent_control=None, damping_control=None, time_integration_params="LINEAR", id=None)
Constructs a Linear, Direct-Integration Time History Load Case
Parameters
Name: Name of the time history load case.endTime: Analysis end time.timeIncrement: Time step increment.stepIncOutput: Output every N-th step.subsequent_control: Starting condition control object —TH.InitialLoad_ControlorTH.Subsequent_Control.damping_control: Damping control object.time_integration_params: Newmark integration parameters.
     'CONSTANT' : Average (Constant) Acceleration | 'LINEAR' : Linear Acceleration |(GAMMA, BETA): User Inputid: Manually assign an ID. If None, ID will be auto-assigned.
Example
TH.Case.LinearDirectInt(
Name="TH_Direct_1",
endTime=34,
timeIncrement=0.0001,
stepIncOutput=1,
subsequent_control=None,
damping_control=TH.Damping.MassStiffness(inpType=1, massProp=0, stiffProp=0),
time_integration_params="CONSTANT"
)
TH.Case.create()
Nonlinear Direct Integration
Constructor
TH.Case.NonLinearDirectInt(Name, endTime=1, timeIncrement=0.01, stepIncOutput=1, subsequent_control=None, damping_control=None, time_integration_params="LINEAR", NonlinearIteration_Control=None, damping_matrix_update="NO", id=None)
Constructs a Nonlinear, Direct-Integration Time History Load Case
Parameters
Name: Name of the time history load case.endTime: Analysis end time.timeIncrement: Time step increment.stepIncOutput: Output every N-th step.subsequent_control: Starting condition control object —TH.InitialLoad_ControlorTH.Subsequent_Control.damping_control: Damping control object.time_integration_params: Newmark integration parameters.
     'CONSTANT' | 'LINEAR' |(GAMMA, BETA)NonlinearIteration_Control: Nonlinear iteration control object.damping_matrix_update: Update the damping matrix at each step.
     'YES' | 'NO'id: Manually assign an ID. If None, ID will be auto-assigned.
Example
TH.Case.NonLinearDirectInt(
Name="TH_NLDirect_1",
endTime=30,
timeIncrement=0.0001,
stepIncOutput=1,
subsequent_control=TH.InitialLoad_Control(Use_Initial_Load=True),
damping_control=TH.Damping.MassStiffness(inpType=1, massProp=0, stiffProp=0),
time_integration_params="CONSTANT",
NonlinearIteration_Control=TH.NonlinearIteration_Control(Maximum_Iteration=10),
damping_matrix_update="NO"
)
TH.Case.create()
Nonlinear Static
Constructor
TH.Case.NonLinearStatic(Name, endTime=1, incrementSteps=1, subsequent_control=None, load_control_scale_factor=1, global_control_maximum_translation_displacement=0, master_node_control=None, load_output_option=False, NonlinearIteration_Control=True, id=None)
Constructs a Nonlinear Static Time History Load Case
Parameters
Name: Name of the time history load case.endTime: Analysis end time.incrementSteps: Number of increment steps.subsequent_control: Starting condition control object —TH.InitialLoad_ControlorTH.Subsequent_Control.load_control_scale_factor: Scale factor used when Load Control governs the increment.global_control_maximum_translation_displacement: Maximum translational displacement for Global (Displacement) Control. Non-zero enables Global Control.master_node_control: Tuple(MasterNode, Direction, TargetIncrement)enabling Master-Node Displacement Control.load_output_option: Output cumulative load results.NonlinearIteration_Control: Nonlinear iteration control object. If a plain truthy value is passed instead of a control object, a built-in default iteration setting is used.id: Manually assign an ID. If None, ID will be auto-assigned.
Example
TH.Case.NonLinearStatic(
Name="TH_NLStatic_1",
endTime=1,
incrementSteps=1,
subsequent_control=TH.InitialLoad_Control(Use_Initial_Load=True),
load_control_scale_factor=1,
load_output_option=False,
NonlinearIteration_Control=TH.NonlinearIteration_Control(Maximum_Iteration=10)
)
TH.Case.create()
Methods
(Shared across all five case types above — LinearModal, NonLinearModal, LinearDirectInt, NonLinearDirectInt, NonLinearStatic)
json
Returns JSON representation of all Time History Load Cases.
print(TH.Case.json())
create
Sends all Time History Load Cases to Civil NX.
TH.Case.create()
get
Fetches Time History Load Case data from Civil NX.
print(TH.Case.get())
sync
Synchronizes Time History Load Cases from Civil NX, rebuilding the correct case type along with its Damping, InitialLoad_Control/Subsequent_Control, and NonlinearIteration_Control sub-objects.
TH.Case.sync()
delete
Deletes all Time History Load Cases from both Python and Civil NX.
TH.Case.delete()
Examples
# 1. Linear Modal, Transient, Modal damping
TH.Case.LinearModal(
Name="TH_Modal_1",
THtype="Transient",
endTime=42,
timeIncrement=0.0001,
damping_control=TH.Damping.Modal(0.0106079)
)
# 2. Linear Direct Integration, Mass & Stiffness (constant) damping
TH.Case.LinearDirectInt(
Name="TH_Direct_1",
endTime=34,
timeIncrement=0.0001,
damping_control=TH.Damping.MassStiffness(inpType=1, massProp=0, stiffProp=0),
time_integration_params="CONSTANT"
)
# 3. Nonlinear Modal, Modal damping, with nonlinear iteration control
TH.Case.NonLinearModal(
Name="TH_NLModal_1",
endTime=32,
timeIncrement=0.0001,
damping_control=TH.Damping.Modal(0.0106079),
NonlinearIteration_Control=TH.NonlinearIteration_Control(
Maximum_Iteration=10,
Displacement_norm=0.001,
Check_Convergence=False
)
)
# 4. Nonlinear Direct Integration, subsequent to Initial Load
TH.Case.NonLinearDirectInt(
Name="TH_NLDirect_1",
endTime=30,
timeIncrement=0.0001,
subsequent_control=TH.InitialLoad_Control(Use_Initial_Load=True),
damping_control=TH.Damping.MassStiffness(inpType=1, massProp=0, stiffProp=0),
time_integration_params="CONSTANT",
NonlinearIteration_Control=TH.NonlinearIteration_Control(Maximum_Iteration=10),
damping_matrix_update="NO"
)
# 5. Nonlinear Static, Load Control, subsequent to Initial Load
TH.Case.NonLinearStatic(
Name="TH_NLStatic_1",
subsequent_control=TH.InitialLoad_Control(Use_Initial_Load=True),
load_control_scale_factor=1,
NonlinearIteration_Control=TH.NonlinearIteration_Control(Maximum_Iteration=10)
)
TH.Case.create()