style: apply ruff format to generated catalog
Mechanical double-quote / line-wrap normalization over the schema-generated catalog classes; no semantic changes.
This commit is contained in:
parent
12c78ea8cb
commit
dd9fa26b52
100 changed files with 7202 additions and 6632 deletions
|
|
@ -8,7 +8,9 @@ from pydantic import BaseModel
|
|||
|
||||
from otko.core.catalog.generated.elastic import ElasticSpec
|
||||
from otko.core.catalog.generated.elastic_perfectly_plastic import ElasticPerfectlyPlasticSpec
|
||||
from otko.core.catalog.generated.elastic_perfectly_plastic_with_gap import ElasticPerfectlyPlasticWithGapSpec
|
||||
from otko.core.catalog.generated.elastic_perfectly_plastic_with_gap import (
|
||||
ElasticPerfectlyPlasticWithGapSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.viscous import ViscousSpec
|
||||
from otko.core.catalog.generated.viscous_damper import ViscousDamperSpec
|
||||
from otko.core.catalog.generated.hyperbolic_gap import HyperbolicGapSpec
|
||||
|
|
@ -21,8 +23,12 @@ from otko.core.catalog.generated.steel02 import Steel02Spec
|
|||
from otko.core.catalog.generated.reinforcing_steel import ReinforcingSteelSpec
|
||||
from otko.core.catalog.generated.hysteretic import HystereticSpec
|
||||
from otko.core.catalog.generated.ramberg_osgood_steel import RambergOsgoodSteelSpec
|
||||
from otko.core.catalog.generated.concrete01_zero_tensile_strength import Concrete01ZeroTensileStrengthSpec
|
||||
from otko.core.catalog.generated.concrete02_linear_tension_softening import Concrete02LinearTensionSofteningSpec
|
||||
from otko.core.catalog.generated.concrete01_zero_tensile_strength import (
|
||||
Concrete01ZeroTensileStrengthSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.concrete02_linear_tension_softening import (
|
||||
Concrete02LinearTensionSofteningSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.concrete04_popovics_concrete import Concrete04PopovicsConcreteSpec
|
||||
from otko.core.catalog.generated.concrete06 import Concrete06Spec
|
||||
from otko.core.catalog.generated.concretecm import ConcretecmSpec
|
||||
|
|
@ -50,10 +56,16 @@ from otko.core.catalog.generated.elastic_membrane_plate import ElasticMembranePl
|
|||
from otko.core.catalog.generated.layeredshell import LayeredshellSpec
|
||||
from otko.core.catalog.generated.ground_motion_record import GroundMotionRecordSpec
|
||||
from otko.core.catalog.generated.elastic_beam_column import ElasticBeamColumnSpec
|
||||
from otko.core.catalog.generated.elastic_timoshenko_beam_column import ElasticTimoshenkoBeamColumnSpec
|
||||
from otko.core.catalog.generated.elastic_timoshenko_beam_column import (
|
||||
ElasticTimoshenkoBeamColumnSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.force_based_beam_column import ForceBasedBeamColumnSpec
|
||||
from otko.core.catalog.generated.displacement_based_beam_column import DisplacementBasedBeamColumnSpec
|
||||
from otko.core.catalog.generated.flexure_shear_interaction_displacement_based_beam_column import FlexureShearInteractionDisplacementBasedBeamColumnSpec
|
||||
from otko.core.catalog.generated.displacement_based_beam_column import (
|
||||
DisplacementBasedBeamColumnSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.flexure_shear_interaction_displacement_based_beam_column import (
|
||||
FlexureShearInteractionDisplacementBasedBeamColumnSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.truss import TrussSpec
|
||||
from otko.core.catalog.generated.corotational_truss import CorotationalTrussSpec
|
||||
from otko.core.catalog.generated.quad import QuadSpec
|
||||
|
|
@ -67,64 +79,124 @@ from otko.core.catalog.generated.auto_equal_constraint import AutoEqualConstrain
|
|||
|
||||
|
||||
CATALOG: dict[str, type[BaseModel]] = {
|
||||
'Elastic': ElasticSpec,
|
||||
'Elastic_Perfectly_Plastic': ElasticPerfectlyPlasticSpec,
|
||||
'Elastic_Perfectly_Plastic_with_Gap': ElasticPerfectlyPlasticWithGapSpec,
|
||||
'Viscous': ViscousSpec,
|
||||
'Viscous_Damper': ViscousDamperSpec,
|
||||
'Hyperbolic_Gap': HyperbolicGapSpec,
|
||||
'PySimple1': Pysimple1Spec,
|
||||
'TzSimple1': Tzsimple1Spec,
|
||||
'QzSimple1': Qzsimple1Spec,
|
||||
'BondSP01': Bondsp01Spec,
|
||||
'Steel01': Steel01Spec,
|
||||
'Steel02': Steel02Spec,
|
||||
'Reinforcing_steel': ReinforcingSteelSpec,
|
||||
'Hysteretic': HystereticSpec,
|
||||
'Ramberg-Osgood steel': RambergOsgoodSteelSpec,
|
||||
'Concrete01_(Zero_tensile_strength)': Concrete01ZeroTensileStrengthSpec,
|
||||
'Concrete02_(Linear_tension_softening)': Concrete02LinearTensionSofteningSpec,
|
||||
'Concrete04_(Popovics_concrete)': Concrete04PopovicsConcreteSpec,
|
||||
'Concrete06': Concrete06Spec,
|
||||
'ConcreteCM': ConcretecmSpec,
|
||||
'Series': SeriesSpec,
|
||||
'Parallel': ParallelSpec,
|
||||
'Section_Aggregator': SectionAggregatorSpec,
|
||||
'Initial_Strain': InitialStrainSpec,
|
||||
'Initial_Stress': InitialStressSpec,
|
||||
'MinMax': MinmaxSpec,
|
||||
'User_Material': UserMaterialSpec,
|
||||
'Elastic_Isotropic': ElasticIsotropicSpec,
|
||||
'Elastic_Orthotropic': ElasticOrthotropicSpec,
|
||||
'J2Plasticity': J2plasticitySpec,
|
||||
'Damage2p': Damage2pSpec,
|
||||
'PressureIndependMultiYield': PressureindependmultiyieldSpec,
|
||||
'PressureDependMultiYield': PressuredependmultiyieldSpec,
|
||||
'PressureDependMultiYield02': Pressuredependmultiyield02Spec,
|
||||
'Contact': ContactSpec,
|
||||
'Elastic_Section': ElasticSectionSpec,
|
||||
'Fiber': FiberSpec,
|
||||
'Fiber_Custom': FiberCustomSpec,
|
||||
'FiberInt': FiberintSpec,
|
||||
'Plate_Fiber': PlateFiberSpec,
|
||||
'Elastic_Membrane_Plate': ElasticMembranePlateSpec,
|
||||
'LayeredShell': LayeredshellSpec,
|
||||
'Ground_Motion_Record': GroundMotionRecordSpec,
|
||||
'Elastic_Beam-Column': ElasticBeamColumnSpec,
|
||||
'Elastic_Timoshenko_Beam-Column': ElasticTimoshenkoBeamColumnSpec,
|
||||
'Force-Based_Beam-Column': ForceBasedBeamColumnSpec,
|
||||
'Displacement-Based_Beam-Column': DisplacementBasedBeamColumnSpec,
|
||||
'Flexure-Shear_Interaction_Displacement-Based_Beam-Column': FlexureShearInteractionDisplacementBasedBeamColumnSpec,
|
||||
'Truss': TrussSpec,
|
||||
'Corotational_Truss': CorotationalTrussSpec,
|
||||
'Quad': QuadSpec,
|
||||
'Shell': ShellSpec,
|
||||
'ShellDKGQ': ShelldkgqSpec,
|
||||
'Tri31': Tri31Spec,
|
||||
'QuadUP': QuadupSpec,
|
||||
'Standard_Brick_Element': StandardBrickElementSpec,
|
||||
'Auto_Zero_Length': AutoZeroLengthSpec,
|
||||
'Auto_equal_constraint': AutoEqualConstraintSpec,
|
||||
"Elastic": ElasticSpec,
|
||||
"Elastic_Perfectly_Plastic": ElasticPerfectlyPlasticSpec,
|
||||
"Elastic_Perfectly_Plastic_with_Gap": ElasticPerfectlyPlasticWithGapSpec,
|
||||
"Viscous": ViscousSpec,
|
||||
"Viscous_Damper": ViscousDamperSpec,
|
||||
"Hyperbolic_Gap": HyperbolicGapSpec,
|
||||
"PySimple1": Pysimple1Spec,
|
||||
"TzSimple1": Tzsimple1Spec,
|
||||
"QzSimple1": Qzsimple1Spec,
|
||||
"BondSP01": Bondsp01Spec,
|
||||
"Steel01": Steel01Spec,
|
||||
"Steel02": Steel02Spec,
|
||||
"Reinforcing_steel": ReinforcingSteelSpec,
|
||||
"Hysteretic": HystereticSpec,
|
||||
"Ramberg-Osgood steel": RambergOsgoodSteelSpec,
|
||||
"Concrete01_(Zero_tensile_strength)": Concrete01ZeroTensileStrengthSpec,
|
||||
"Concrete02_(Linear_tension_softening)": Concrete02LinearTensionSofteningSpec,
|
||||
"Concrete04_(Popovics_concrete)": Concrete04PopovicsConcreteSpec,
|
||||
"Concrete06": Concrete06Spec,
|
||||
"ConcreteCM": ConcretecmSpec,
|
||||
"Series": SeriesSpec,
|
||||
"Parallel": ParallelSpec,
|
||||
"Section_Aggregator": SectionAggregatorSpec,
|
||||
"Initial_Strain": InitialStrainSpec,
|
||||
"Initial_Stress": InitialStressSpec,
|
||||
"MinMax": MinmaxSpec,
|
||||
"User_Material": UserMaterialSpec,
|
||||
"Elastic_Isotropic": ElasticIsotropicSpec,
|
||||
"Elastic_Orthotropic": ElasticOrthotropicSpec,
|
||||
"J2Plasticity": J2plasticitySpec,
|
||||
"Damage2p": Damage2pSpec,
|
||||
"PressureIndependMultiYield": PressureindependmultiyieldSpec,
|
||||
"PressureDependMultiYield": PressuredependmultiyieldSpec,
|
||||
"PressureDependMultiYield02": Pressuredependmultiyield02Spec,
|
||||
"Contact": ContactSpec,
|
||||
"Elastic_Section": ElasticSectionSpec,
|
||||
"Fiber": FiberSpec,
|
||||
"Fiber_Custom": FiberCustomSpec,
|
||||
"FiberInt": FiberintSpec,
|
||||
"Plate_Fiber": PlateFiberSpec,
|
||||
"Elastic_Membrane_Plate": ElasticMembranePlateSpec,
|
||||
"LayeredShell": LayeredshellSpec,
|
||||
"Ground_Motion_Record": GroundMotionRecordSpec,
|
||||
"Elastic_Beam-Column": ElasticBeamColumnSpec,
|
||||
"Elastic_Timoshenko_Beam-Column": ElasticTimoshenkoBeamColumnSpec,
|
||||
"Force-Based_Beam-Column": ForceBasedBeamColumnSpec,
|
||||
"Displacement-Based_Beam-Column": DisplacementBasedBeamColumnSpec,
|
||||
"Flexure-Shear_Interaction_Displacement-Based_Beam-Column": FlexureShearInteractionDisplacementBasedBeamColumnSpec,
|
||||
"Truss": TrussSpec,
|
||||
"Corotational_Truss": CorotationalTrussSpec,
|
||||
"Quad": QuadSpec,
|
||||
"Shell": ShellSpec,
|
||||
"ShellDKGQ": ShelldkgqSpec,
|
||||
"Tri31": Tri31Spec,
|
||||
"QuadUP": QuadupSpec,
|
||||
"Standard_Brick_Element": StandardBrickElementSpec,
|
||||
"Auto_Zero_Length": AutoZeroLengthSpec,
|
||||
"Auto_equal_constraint": AutoEqualConstraintSpec,
|
||||
}
|
||||
|
||||
__all__ = ["CATALOG", 'ElasticSpec', 'ElasticPerfectlyPlasticSpec', 'ElasticPerfectlyPlasticWithGapSpec', 'ViscousSpec', 'ViscousDamperSpec', 'HyperbolicGapSpec', 'Pysimple1Spec', 'Tzsimple1Spec', 'Qzsimple1Spec', 'Bondsp01Spec', 'Steel01Spec', 'Steel02Spec', 'ReinforcingSteelSpec', 'HystereticSpec', 'RambergOsgoodSteelSpec', 'Concrete01ZeroTensileStrengthSpec', 'Concrete02LinearTensionSofteningSpec', 'Concrete04PopovicsConcreteSpec', 'Concrete06Spec', 'ConcretecmSpec', 'SeriesSpec', 'ParallelSpec', 'SectionAggregatorSpec', 'InitialStrainSpec', 'InitialStressSpec', 'MinmaxSpec', 'UserMaterialSpec', 'ElasticIsotropicSpec', 'ElasticOrthotropicSpec', 'J2plasticitySpec', 'Damage2pSpec', 'PressureindependmultiyieldSpec', 'PressuredependmultiyieldSpec', 'Pressuredependmultiyield02Spec', 'ContactSpec', 'ElasticSectionSpec', 'FiberSpec', 'FiberCustomSpec', 'FiberintSpec', 'PlateFiberSpec', 'ElasticMembranePlateSpec', 'LayeredshellSpec', 'GroundMotionRecordSpec', 'ElasticBeamColumnSpec', 'ElasticTimoshenkoBeamColumnSpec', 'ForceBasedBeamColumnSpec', 'DisplacementBasedBeamColumnSpec', 'FlexureShearInteractionDisplacementBasedBeamColumnSpec', 'TrussSpec', 'CorotationalTrussSpec', 'QuadSpec', 'ShellSpec', 'ShelldkgqSpec', 'Tri31Spec', 'QuadupSpec', 'StandardBrickElementSpec', 'AutoZeroLengthSpec', 'AutoEqualConstraintSpec']
|
||||
__all__ = [
|
||||
"CATALOG",
|
||||
"ElasticSpec",
|
||||
"ElasticPerfectlyPlasticSpec",
|
||||
"ElasticPerfectlyPlasticWithGapSpec",
|
||||
"ViscousSpec",
|
||||
"ViscousDamperSpec",
|
||||
"HyperbolicGapSpec",
|
||||
"Pysimple1Spec",
|
||||
"Tzsimple1Spec",
|
||||
"Qzsimple1Spec",
|
||||
"Bondsp01Spec",
|
||||
"Steel01Spec",
|
||||
"Steel02Spec",
|
||||
"ReinforcingSteelSpec",
|
||||
"HystereticSpec",
|
||||
"RambergOsgoodSteelSpec",
|
||||
"Concrete01ZeroTensileStrengthSpec",
|
||||
"Concrete02LinearTensionSofteningSpec",
|
||||
"Concrete04PopovicsConcreteSpec",
|
||||
"Concrete06Spec",
|
||||
"ConcretecmSpec",
|
||||
"SeriesSpec",
|
||||
"ParallelSpec",
|
||||
"SectionAggregatorSpec",
|
||||
"InitialStrainSpec",
|
||||
"InitialStressSpec",
|
||||
"MinmaxSpec",
|
||||
"UserMaterialSpec",
|
||||
"ElasticIsotropicSpec",
|
||||
"ElasticOrthotropicSpec",
|
||||
"J2plasticitySpec",
|
||||
"Damage2pSpec",
|
||||
"PressureindependmultiyieldSpec",
|
||||
"PressuredependmultiyieldSpec",
|
||||
"Pressuredependmultiyield02Spec",
|
||||
"ContactSpec",
|
||||
"ElasticSectionSpec",
|
||||
"FiberSpec",
|
||||
"FiberCustomSpec",
|
||||
"FiberintSpec",
|
||||
"PlateFiberSpec",
|
||||
"ElasticMembranePlateSpec",
|
||||
"LayeredshellSpec",
|
||||
"GroundMotionRecordSpec",
|
||||
"ElasticBeamColumnSpec",
|
||||
"ElasticTimoshenkoBeamColumnSpec",
|
||||
"ForceBasedBeamColumnSpec",
|
||||
"DisplacementBasedBeamColumnSpec",
|
||||
"FlexureShearInteractionDisplacementBasedBeamColumnSpec",
|
||||
"TrussSpec",
|
||||
"CorotationalTrussSpec",
|
||||
"QuadSpec",
|
||||
"ShellSpec",
|
||||
"ShelldkgqSpec",
|
||||
"Tri31Spec",
|
||||
"QuadupSpec",
|
||||
"StandardBrickElementSpec",
|
||||
"AutoZeroLengthSpec",
|
||||
"AutoEqualConstraintSpec",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ from typing import Union
|
|||
|
||||
from otko.core.catalog.generated.elastic import ElasticSpec
|
||||
from otko.core.catalog.generated.elastic_perfectly_plastic import ElasticPerfectlyPlasticSpec
|
||||
from otko.core.catalog.generated.elastic_perfectly_plastic_with_gap import ElasticPerfectlyPlasticWithGapSpec
|
||||
from otko.core.catalog.generated.elastic_perfectly_plastic_with_gap import (
|
||||
ElasticPerfectlyPlasticWithGapSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.viscous import ViscousSpec
|
||||
from otko.core.catalog.generated.viscous_damper import ViscousDamperSpec
|
||||
from otko.core.catalog.generated.hyperbolic_gap import HyperbolicGapSpec
|
||||
|
|
@ -20,8 +22,12 @@ from otko.core.catalog.generated.steel02 import Steel02Spec
|
|||
from otko.core.catalog.generated.reinforcing_steel import ReinforcingSteelSpec
|
||||
from otko.core.catalog.generated.hysteretic import HystereticSpec
|
||||
from otko.core.catalog.generated.ramberg_osgood_steel import RambergOsgoodSteelSpec
|
||||
from otko.core.catalog.generated.concrete01_zero_tensile_strength import Concrete01ZeroTensileStrengthSpec
|
||||
from otko.core.catalog.generated.concrete02_linear_tension_softening import Concrete02LinearTensionSofteningSpec
|
||||
from otko.core.catalog.generated.concrete01_zero_tensile_strength import (
|
||||
Concrete01ZeroTensileStrengthSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.concrete02_linear_tension_softening import (
|
||||
Concrete02LinearTensionSofteningSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.concrete04_popovics_concrete import Concrete04PopovicsConcreteSpec
|
||||
from otko.core.catalog.generated.concrete06 import Concrete06Spec
|
||||
from otko.core.catalog.generated.concretecm import ConcretecmSpec
|
||||
|
|
@ -49,10 +55,16 @@ from otko.core.catalog.generated.elastic_membrane_plate import ElasticMembranePl
|
|||
from otko.core.catalog.generated.layeredshell import LayeredshellSpec
|
||||
from otko.core.catalog.generated.ground_motion_record import GroundMotionRecordSpec
|
||||
from otko.core.catalog.generated.elastic_beam_column import ElasticBeamColumnSpec
|
||||
from otko.core.catalog.generated.elastic_timoshenko_beam_column import ElasticTimoshenkoBeamColumnSpec
|
||||
from otko.core.catalog.generated.elastic_timoshenko_beam_column import (
|
||||
ElasticTimoshenkoBeamColumnSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.force_based_beam_column import ForceBasedBeamColumnSpec
|
||||
from otko.core.catalog.generated.displacement_based_beam_column import DisplacementBasedBeamColumnSpec
|
||||
from otko.core.catalog.generated.flexure_shear_interaction_displacement_based_beam_column import FlexureShearInteractionDisplacementBasedBeamColumnSpec
|
||||
from otko.core.catalog.generated.displacement_based_beam_column import (
|
||||
DisplacementBasedBeamColumnSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.flexure_shear_interaction_displacement_based_beam_column import (
|
||||
FlexureShearInteractionDisplacementBasedBeamColumnSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.truss import TrussSpec
|
||||
from otko.core.catalog.generated.corotational_truss import CorotationalTrussSpec
|
||||
from otko.core.catalog.generated.quad import QuadSpec
|
||||
|
|
@ -65,19 +77,141 @@ from otko.core.catalog.generated.auto_zero_length import AutoZeroLengthSpec
|
|||
from otko.core.catalog.generated.auto_equal_constraint import AutoEqualConstraintSpec
|
||||
|
||||
|
||||
StandardUniaxialMaterials = Union[ElasticSpec, ElasticPerfectlyPlasticSpec, ElasticPerfectlyPlasticWithGapSpec, ViscousSpec, ViscousDamperSpec, HyperbolicGapSpec, Pysimple1Spec, Tzsimple1Spec, Qzsimple1Spec, Bondsp01Spec]
|
||||
UniaxialSteelMaterials = Union[Steel01Spec, Steel02Spec, ReinforcingSteelSpec, HystereticSpec, RambergOsgoodSteelSpec]
|
||||
UniaxialConcreteMaterials = Union[Concrete01ZeroTensileStrengthSpec, Concrete02LinearTensionSofteningSpec, Concrete04PopovicsConcreteSpec, Concrete06Spec, ConcretecmSpec]
|
||||
CombinedMaterials = Union[SeriesSpec, ParallelSpec, SectionAggregatorSpec, InitialStrainSpec, InitialStressSpec, MinmaxSpec]
|
||||
StandardUniaxialMaterials = Union[
|
||||
ElasticSpec,
|
||||
ElasticPerfectlyPlasticSpec,
|
||||
ElasticPerfectlyPlasticWithGapSpec,
|
||||
ViscousSpec,
|
||||
ViscousDamperSpec,
|
||||
HyperbolicGapSpec,
|
||||
Pysimple1Spec,
|
||||
Tzsimple1Spec,
|
||||
Qzsimple1Spec,
|
||||
Bondsp01Spec,
|
||||
]
|
||||
UniaxialSteelMaterials = Union[
|
||||
Steel01Spec, Steel02Spec, ReinforcingSteelSpec, HystereticSpec, RambergOsgoodSteelSpec
|
||||
]
|
||||
UniaxialConcreteMaterials = Union[
|
||||
Concrete01ZeroTensileStrengthSpec,
|
||||
Concrete02LinearTensionSofteningSpec,
|
||||
Concrete04PopovicsConcreteSpec,
|
||||
Concrete06Spec,
|
||||
ConcretecmSpec,
|
||||
]
|
||||
CombinedMaterials = Union[
|
||||
SeriesSpec,
|
||||
ParallelSpec,
|
||||
SectionAggregatorSpec,
|
||||
InitialStrainSpec,
|
||||
InitialStressSpec,
|
||||
MinmaxSpec,
|
||||
]
|
||||
UserMaterials = UserMaterialSpec
|
||||
MultidimensionalNdMaterials = Union[ElasticIsotropicSpec, ElasticOrthotropicSpec, J2plasticitySpec, Damage2pSpec, PressureindependmultiyieldSpec, PressuredependmultiyieldSpec, Pressuredependmultiyield02Spec, ContactSpec]
|
||||
SectionForceDeformation = Union[ElasticSectionSpec, FiberSpec, FiberCustomSpec, FiberintSpec, PlateFiberSpec, ElasticMembranePlateSpec, LayeredshellSpec]
|
||||
MultidimensionalNdMaterials = Union[
|
||||
ElasticIsotropicSpec,
|
||||
ElasticOrthotropicSpec,
|
||||
J2plasticitySpec,
|
||||
Damage2pSpec,
|
||||
PressureindependmultiyieldSpec,
|
||||
PressuredependmultiyieldSpec,
|
||||
Pressuredependmultiyield02Spec,
|
||||
ContactSpec,
|
||||
]
|
||||
SectionForceDeformation = Union[
|
||||
ElasticSectionSpec,
|
||||
FiberSpec,
|
||||
FiberCustomSpec,
|
||||
FiberintSpec,
|
||||
PlateFiberSpec,
|
||||
ElasticMembranePlateSpec,
|
||||
LayeredshellSpec,
|
||||
]
|
||||
Records = GroundMotionRecordSpec
|
||||
BeamColumnElements = Union[ElasticBeamColumnSpec, ElasticTimoshenkoBeamColumnSpec, ForceBasedBeamColumnSpec, DisplacementBasedBeamColumnSpec, FlexureShearInteractionDisplacementBasedBeamColumnSpec]
|
||||
BeamColumnElements = Union[
|
||||
ElasticBeamColumnSpec,
|
||||
ElasticTimoshenkoBeamColumnSpec,
|
||||
ForceBasedBeamColumnSpec,
|
||||
DisplacementBasedBeamColumnSpec,
|
||||
FlexureShearInteractionDisplacementBasedBeamColumnSpec,
|
||||
]
|
||||
TrussElements = Union[TrussSpec, CorotationalTrussSpec]
|
||||
SurfaceElements = Union[QuadSpec, ShellSpec, ShelldkgqSpec, Tri31Spec, QuadupSpec]
|
||||
SolidElements = StandardBrickElementSpec
|
||||
Autozl = AutoZeroLengthSpec
|
||||
Autoedof = AutoEqualConstraintSpec
|
||||
|
||||
__all__ = ['ElasticSpec', 'ElasticPerfectlyPlasticSpec', 'ElasticPerfectlyPlasticWithGapSpec', 'ViscousSpec', 'ViscousDamperSpec', 'HyperbolicGapSpec', 'Pysimple1Spec', 'Tzsimple1Spec', 'Qzsimple1Spec', 'Bondsp01Spec', 'Steel01Spec', 'Steel02Spec', 'ReinforcingSteelSpec', 'HystereticSpec', 'RambergOsgoodSteelSpec', 'Concrete01ZeroTensileStrengthSpec', 'Concrete02LinearTensionSofteningSpec', 'Concrete04PopovicsConcreteSpec', 'Concrete06Spec', 'ConcretecmSpec', 'SeriesSpec', 'ParallelSpec', 'SectionAggregatorSpec', 'InitialStrainSpec', 'InitialStressSpec', 'MinmaxSpec', 'UserMaterialSpec', 'ElasticIsotropicSpec', 'ElasticOrthotropicSpec', 'J2plasticitySpec', 'Damage2pSpec', 'PressureindependmultiyieldSpec', 'PressuredependmultiyieldSpec', 'Pressuredependmultiyield02Spec', 'ContactSpec', 'ElasticSectionSpec', 'FiberSpec', 'FiberCustomSpec', 'FiberintSpec', 'PlateFiberSpec', 'ElasticMembranePlateSpec', 'LayeredshellSpec', 'GroundMotionRecordSpec', 'ElasticBeamColumnSpec', 'ElasticTimoshenkoBeamColumnSpec', 'ForceBasedBeamColumnSpec', 'DisplacementBasedBeamColumnSpec', 'FlexureShearInteractionDisplacementBasedBeamColumnSpec', 'TrussSpec', 'CorotationalTrussSpec', 'QuadSpec', 'ShellSpec', 'ShelldkgqSpec', 'Tri31Spec', 'QuadupSpec', 'StandardBrickElementSpec', 'AutoZeroLengthSpec', 'AutoEqualConstraintSpec', 'StandardUniaxialMaterials', 'UniaxialSteelMaterials', 'UniaxialConcreteMaterials', 'CombinedMaterials', 'UserMaterials', 'MultidimensionalNdMaterials', 'SectionForceDeformation', 'Records', 'BeamColumnElements', 'TrussElements', 'SurfaceElements', 'SolidElements', 'Autozl', 'Autoedof']
|
||||
__all__ = [
|
||||
"ElasticSpec",
|
||||
"ElasticPerfectlyPlasticSpec",
|
||||
"ElasticPerfectlyPlasticWithGapSpec",
|
||||
"ViscousSpec",
|
||||
"ViscousDamperSpec",
|
||||
"HyperbolicGapSpec",
|
||||
"Pysimple1Spec",
|
||||
"Tzsimple1Spec",
|
||||
"Qzsimple1Spec",
|
||||
"Bondsp01Spec",
|
||||
"Steel01Spec",
|
||||
"Steel02Spec",
|
||||
"ReinforcingSteelSpec",
|
||||
"HystereticSpec",
|
||||
"RambergOsgoodSteelSpec",
|
||||
"Concrete01ZeroTensileStrengthSpec",
|
||||
"Concrete02LinearTensionSofteningSpec",
|
||||
"Concrete04PopovicsConcreteSpec",
|
||||
"Concrete06Spec",
|
||||
"ConcretecmSpec",
|
||||
"SeriesSpec",
|
||||
"ParallelSpec",
|
||||
"SectionAggregatorSpec",
|
||||
"InitialStrainSpec",
|
||||
"InitialStressSpec",
|
||||
"MinmaxSpec",
|
||||
"UserMaterialSpec",
|
||||
"ElasticIsotropicSpec",
|
||||
"ElasticOrthotropicSpec",
|
||||
"J2plasticitySpec",
|
||||
"Damage2pSpec",
|
||||
"PressureindependmultiyieldSpec",
|
||||
"PressuredependmultiyieldSpec",
|
||||
"Pressuredependmultiyield02Spec",
|
||||
"ContactSpec",
|
||||
"ElasticSectionSpec",
|
||||
"FiberSpec",
|
||||
"FiberCustomSpec",
|
||||
"FiberintSpec",
|
||||
"PlateFiberSpec",
|
||||
"ElasticMembranePlateSpec",
|
||||
"LayeredshellSpec",
|
||||
"GroundMotionRecordSpec",
|
||||
"ElasticBeamColumnSpec",
|
||||
"ElasticTimoshenkoBeamColumnSpec",
|
||||
"ForceBasedBeamColumnSpec",
|
||||
"DisplacementBasedBeamColumnSpec",
|
||||
"FlexureShearInteractionDisplacementBasedBeamColumnSpec",
|
||||
"TrussSpec",
|
||||
"CorotationalTrussSpec",
|
||||
"QuadSpec",
|
||||
"ShellSpec",
|
||||
"ShelldkgqSpec",
|
||||
"Tri31Spec",
|
||||
"QuadupSpec",
|
||||
"StandardBrickElementSpec",
|
||||
"AutoZeroLengthSpec",
|
||||
"AutoEqualConstraintSpec",
|
||||
"StandardUniaxialMaterials",
|
||||
"UniaxialSteelMaterials",
|
||||
"UniaxialConcreteMaterials",
|
||||
"CombinedMaterials",
|
||||
"UserMaterials",
|
||||
"MultidimensionalNdMaterials",
|
||||
"SectionForceDeformation",
|
||||
"Records",
|
||||
"BeamColumnElements",
|
||||
"TrussElements",
|
||||
"SurfaceElements",
|
||||
"SolidElements",
|
||||
"Autozl",
|
||||
"Autoedof",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -17,478 +17,478 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class AutoEqualConstraintSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Auto_equal_constraint',
|
||||
'x-book': 'AutoEDOF',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Auto_equal_constraint",
|
||||
"x-book": "AutoEDOF",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'source',
|
||||
'gid_name': 'Source',
|
||||
'rules': [
|
||||
"field": "source",
|
||||
"gid_name": "Source",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Layer',
|
||||
'actions': [
|
||||
"trigger": "Layer",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Layer_name',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Layer_name",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'All',
|
||||
'actions': [
|
||||
"trigger": "All",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Layer_name',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Layer_name",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Visible',
|
||||
'actions': [
|
||||
"trigger": "Visible",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Layer_name',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Layer_name",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'x_criteria',
|
||||
'gid_name': 'X-Criteria',
|
||||
'rules': [
|
||||
"field": "x_criteria",
|
||||
"gid_name": "X-Criteria",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Any',
|
||||
'actions': [
|
||||
"trigger": "Any",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fixed',
|
||||
'actions': [
|
||||
"trigger": "Fixed",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'GT',
|
||||
'actions': [
|
||||
"trigger": "GT",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'GET',
|
||||
'actions': [
|
||||
"trigger": "GET",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'LT',
|
||||
'actions': [
|
||||
"trigger": "LT",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'LET',
|
||||
'actions': [
|
||||
"trigger": "LET",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Between',
|
||||
'actions': [
|
||||
"trigger": "Between",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Min_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Min_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Max_X-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Max_X-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'y_criteria',
|
||||
'gid_name': 'Y-Criteria',
|
||||
'rules': [
|
||||
"field": "y_criteria",
|
||||
"gid_name": "Y-Criteria",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Any',
|
||||
'actions': [
|
||||
"trigger": "Any",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fixed',
|
||||
'actions': [
|
||||
"trigger": "Fixed",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'GT',
|
||||
'actions': [
|
||||
"trigger": "GT",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'GET',
|
||||
'actions': [
|
||||
"trigger": "GET",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'LT',
|
||||
'actions': [
|
||||
"trigger": "LT",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'LET',
|
||||
'actions': [
|
||||
"trigger": "LET",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Between',
|
||||
'actions': [
|
||||
"trigger": "Between",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Min_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Min_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Max_Y-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Max_Y-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'z_criteria',
|
||||
'gid_name': 'Z-Criteria',
|
||||
'rules': [
|
||||
"field": "z_criteria",
|
||||
"gid_name": "Z-Criteria",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Any',
|
||||
'actions': [
|
||||
"trigger": "Any",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fixed',
|
||||
'actions': [
|
||||
"trigger": "Fixed",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'GT',
|
||||
'actions': [
|
||||
"trigger": "GT",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'GET',
|
||||
'actions': [
|
||||
"trigger": "GET",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'LT',
|
||||
'actions': [
|
||||
"trigger": "LT",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'LET',
|
||||
'actions': [
|
||||
"trigger": "LET",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Between',
|
||||
'actions': [
|
||||
"trigger": "Between",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Min_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Min_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Max_Z-Coordinate',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Max_Z-Coordinate",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -498,29 +498,40 @@ class AutoEqualConstraintSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
determine_master_node: Literal['Existed', 'Extra'] = 'Existed'
|
||||
source: Literal['Layer', 'All', 'Visible'] = Field('Layer', description='Layer: Points or Nodes from specific layer regardless the visibility\\nAll: all points or nodes regardless the visibility\\nVisible: Only visible points or nodes')
|
||||
layer_name: str = Field('Layer0', description='Layer with name "AutoZL" will be ignored.')
|
||||
x_criteria: Literal['Any', 'Fixed', 'GT', 'GET', 'LT', 'LET', 'Between'] = Field('Any', description='GT: Greater than\\nGET: Greater/Equal than\\nLT: Less than\\nLET: Less/Equal than\\nBetween: inside (min,max) space including boundaries')
|
||||
determine_master_node: Literal["Existed", "Extra"] = "Existed"
|
||||
source: Literal["Layer", "All", "Visible"] = Field(
|
||||
"Layer",
|
||||
description="Layer: Points or Nodes from specific layer regardless the visibility\\nAll: all points or nodes regardless the visibility\\nVisible: Only visible points or nodes",
|
||||
)
|
||||
layer_name: str = Field("Layer0", description='Layer with name "AutoZL" will be ignored.')
|
||||
x_criteria: Literal["Any", "Fixed", "GT", "GET", "LT", "LET", "Between"] = Field(
|
||||
"Any",
|
||||
description="GT: Greater than\\nGET: Greater/Equal than\\nLT: Less than\\nLET: Less/Equal than\\nBetween: inside (min,max) space including boundaries",
|
||||
)
|
||||
x_coordinate: float = 0.0
|
||||
min_x_coordinate: float = 0.0
|
||||
max_x_coordinate: float = 0.0
|
||||
y_criteria: Literal['Any', 'Fixed', 'GT', 'GET', 'LT', 'LET', 'Between'] = Field('Any', description='GT: Greater than\\nGET: Greater/Equal than\\nLT: Less than\\nLET: Less/Equal than\\nBetween: inside (min,max) space including boundaries')
|
||||
y_criteria: Literal["Any", "Fixed", "GT", "GET", "LT", "LET", "Between"] = Field(
|
||||
"Any",
|
||||
description="GT: Greater than\\nGET: Greater/Equal than\\nLT: Less than\\nLET: Less/Equal than\\nBetween: inside (min,max) space including boundaries",
|
||||
)
|
||||
y_coordinate: float = 0.0
|
||||
min_y_coordinate: float = 0.0
|
||||
max_y_coordinate: float = 0.0
|
||||
z_criteria: Literal['Any', 'Fixed', 'GT', 'GET', 'LT', 'LET', 'Between'] = Field('Any', description='GT: Greater than\\nGET: Greater/Equal than\\nLT: Less than\\nLET: Less/Equal than\\nBetween: inside (min,max) space including boundaries')
|
||||
z_criteria: Literal["Any", "Fixed", "GT", "GET", "LT", "LET", "Between"] = Field(
|
||||
"Any",
|
||||
description="GT: Greater than\\nGET: Greater/Equal than\\nLT: Less than\\nLET: Less/Equal than\\nBetween: inside (min,max) space including boundaries",
|
||||
)
|
||||
z_coordinate: float = 0.0
|
||||
min_z_coordinate: float = 0.0
|
||||
max_z_coordinate: float = 0.0
|
||||
extra_point_node_offset: Literal['_'] = '_'
|
||||
extra_point_node_offset: Literal["_"] = "_"
|
||||
x_offset: float = 0.0
|
||||
y_offset: float = 0.0
|
||||
z_offset: float = 0.0
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -23,86 +23,86 @@ class CyclicDataRow(BaseModel):
|
|||
class Bondsp01Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'BondSP01',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "BondSP01",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Slip',
|
||||
'actions': [
|
||||
"trigger": "Stress-Slip",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Ultimate_stress_Fu',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Ultimate_stress_Fu",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Ultimate_Force_Fu',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Ultimate_Force_Fu",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Slip',
|
||||
'actions': [
|
||||
"trigger": "Force-Slip",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Ultimate_Force_Fu',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Ultimate_Force_Fu",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Ultimate_stress_Fu',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Ultimate_stress_Fu",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -112,16 +112,15 @@ class Bondsp01Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
formulation: Literal['Stress-Slip', 'Force-Slip'] = 'Stress-Slip'
|
||||
yield_stress_fy: str = '500 MPa' # TODO: unit-aware type
|
||||
yield_force_fy: str = '157 kN' # TODO: unit-aware type
|
||||
rebar_slip_at_fy: str = '1 mm' # TODO: unit-aware type
|
||||
ultimate_stress_fu: str = '675 MPa' # TODO: unit-aware type
|
||||
ultimate_force_fu: str = '212 kN' # TODO: unit-aware type
|
||||
rebar_slip_at_the_loaded_end_at_the_bar_fracture_strength: str = '2 mm' # TODO: unit-aware type
|
||||
material: Literal["_"] = "_"
|
||||
formulation: Literal["Stress-Slip", "Force-Slip"] = "Stress-Slip"
|
||||
yield_stress_fy: str = "500 MPa" # TODO: unit-aware type
|
||||
yield_force_fy: str = "157 kN" # TODO: unit-aware type
|
||||
rebar_slip_at_fy: str = "1 mm" # TODO: unit-aware type
|
||||
ultimate_stress_fu: str = "675 MPa" # TODO: unit-aware type
|
||||
ultimate_force_fu: str = "212 kN" # TODO: unit-aware type
|
||||
rebar_slip_at_the_loaded_end_at_the_bar_fracture_strength: str = "2 mm" # TODO: unit-aware type
|
||||
initial_hardening: float = 0.4
|
||||
pinching_factor_for_the_cyclic_slip_vs_bar_response: float = 0.5
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
|
||||
|
|
|
|||
|
|
@ -23,176 +23,176 @@ class CyclicDataRow(BaseModel):
|
|||
class Concrete01ZeroTensileStrengthSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Concrete01_(Zero_tensile_strength)',
|
||||
'x-book': 'Uniaxial_Concrete_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Concrete01_(Zero_tensile_strength)",
|
||||
"x-book": "Uniaxial_Concrete_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'strength_class',
|
||||
'gid_name': 'Strength_class',
|
||||
'rules': [
|
||||
"field": "strength_class",
|
||||
"gid_name": "Strength_class",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'C12/15',
|
||||
'actions': [
|
||||
"trigger": "C12/15",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C16/20',
|
||||
'actions': [
|
||||
"trigger": "C16/20",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C20/25',
|
||||
'actions': [
|
||||
"trigger": "C20/25",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C25/30',
|
||||
'actions': [
|
||||
"trigger": "C25/30",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C30/37',
|
||||
'actions': [
|
||||
"trigger": "C30/37",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C35/45',
|
||||
'actions': [
|
||||
"trigger": "C35/45",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C40/50',
|
||||
'actions': [
|
||||
"trigger": "C40/50",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C45/55',
|
||||
'actions': [
|
||||
"trigger": "C45/55",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C50/60',
|
||||
'actions': [
|
||||
"trigger": "C50/60",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C60/75',
|
||||
'actions': [
|
||||
"trigger": "C60/75",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C70/85',
|
||||
'actions': [
|
||||
"trigger": "C70/85",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C80/95',
|
||||
'actions': [
|
||||
"trigger": "C80/95",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C90/105',
|
||||
'actions': [
|
||||
"trigger": "C90/105",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -202,15 +202,36 @@ class Concrete01ZeroTensileStrengthSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Concrete01'] = Field('Concrete01', description='uniaxial Kent-Scott-Park concrete material object with degraded linear unloading/reloading stiffness according to the work of Karsan-Jirsa and no tensile strength')
|
||||
strength_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105', 'Custom'] = Field('Custom', description='Choose concrete strength category, to take some standard values in the following fields.')
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
compressive_strength_fpc: str = '-20 MPa' # TODO: unit-aware type
|
||||
material: Literal["Concrete01"] = Field(
|
||||
"Concrete01",
|
||||
description="uniaxial Kent-Scott-Park concrete material object with degraded linear unloading/reloading stiffness according to the work of Karsan-Jirsa and no tensile strength",
|
||||
)
|
||||
strength_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
"Custom",
|
||||
] = Field(
|
||||
"Custom",
|
||||
description="Choose concrete strength category, to take some standard values in the following fields.",
|
||||
)
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
compressive_strength_fpc: str = "-20 MPa" # TODO: unit-aware type
|
||||
strain_at_maximum_strength_epsc0: float = -2.0e-3
|
||||
crushing_strength_fpcu: str = '-17.0 MPa' # TODO: unit-aware type
|
||||
crushing_strength_fpcu: str = "-17.0 MPa" # TODO: unit-aware type
|
||||
strain_at_crushing_strength_epscu: float = -3.5e-3
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,176 +23,176 @@ class CyclicDataRow(BaseModel):
|
|||
class Concrete02LinearTensionSofteningSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Concrete02_(Linear_tension_softening)',
|
||||
'x-book': 'Uniaxial_Concrete_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Concrete02_(Linear_tension_softening)",
|
||||
"x-book": "Uniaxial_Concrete_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'strength_class',
|
||||
'gid_name': 'Strength_class',
|
||||
'rules': [
|
||||
"field": "strength_class",
|
||||
"gid_name": "Strength_class",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'C12/15',
|
||||
'actions': [
|
||||
"trigger": "C12/15",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C16/20',
|
||||
'actions': [
|
||||
"trigger": "C16/20",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C20/25',
|
||||
'actions': [
|
||||
"trigger": "C20/25",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C25/30',
|
||||
'actions': [
|
||||
"trigger": "C25/30",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C30/37',
|
||||
'actions': [
|
||||
"trigger": "C30/37",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C35/45',
|
||||
'actions': [
|
||||
"trigger": "C35/45",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C40/50',
|
||||
'actions': [
|
||||
"trigger": "C40/50",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C45/55',
|
||||
'actions': [
|
||||
"trigger": "C45/55",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C50/60',
|
||||
'actions': [
|
||||
"trigger": "C50/60",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C60/75',
|
||||
'actions': [
|
||||
"trigger": "C60/75",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C70/85',
|
||||
'actions': [
|
||||
"trigger": "C70/85",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C80/95',
|
||||
'actions': [
|
||||
"trigger": "C80/95",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C90/105',
|
||||
'actions': [
|
||||
"trigger": "C90/105",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -202,18 +202,36 @@ class Concrete02LinearTensionSofteningSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Concrete02'] = 'Concrete02'
|
||||
strength_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105', 'Custom'] = Field('Custom', description='Choose concrete strength category, to generate fast properties in the following fields.')
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
compressive_strength_fpc: str = '-20 MPa' # TODO: unit-aware type
|
||||
material: Literal["Concrete02"] = "Concrete02"
|
||||
strength_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
"Custom",
|
||||
] = Field(
|
||||
"Custom",
|
||||
description="Choose concrete strength category, to generate fast properties in the following fields.",
|
||||
)
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
compressive_strength_fpc: str = "-20 MPa" # TODO: unit-aware type
|
||||
strain_at_maximum_strength_epsc0: float = -2.0e-3
|
||||
crushing_strength_fpcu: str = '-17.0 MPa' # TODO: unit-aware type
|
||||
crushing_strength_fpcu: str = "-17.0 MPa" # TODO: unit-aware type
|
||||
strain_at_crushing_strength_epscu: float = -3.5e-3
|
||||
ratio_between_unloading_slope_at_epscu_and_initial_slope_lambda: float = 0.5
|
||||
tensile_strength_ft: str = '2.2 MPa' # TODO: unit-aware type
|
||||
tension_softening_stiffness_ets: str = '2 GPa' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
tensile_strength_ft: str = "2.2 MPa" # TODO: unit-aware type
|
||||
tension_softening_stiffness_ets: str = "2 GPa" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,176 +23,176 @@ class CyclicDataRow(BaseModel):
|
|||
class Concrete04PopovicsConcreteSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Concrete04_(Popovics_concrete)',
|
||||
'x-book': 'Uniaxial_Concrete_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Concrete04_(Popovics_concrete)",
|
||||
"x-book": "Uniaxial_Concrete_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'strength_class',
|
||||
'gid_name': 'Strength_class',
|
||||
'rules': [
|
||||
"field": "strength_class",
|
||||
"gid_name": "Strength_class",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'C12/15',
|
||||
'actions': [
|
||||
"trigger": "C12/15",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C16/20',
|
||||
'actions': [
|
||||
"trigger": "C16/20",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C20/25',
|
||||
'actions': [
|
||||
"trigger": "C20/25",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C25/30',
|
||||
'actions': [
|
||||
"trigger": "C25/30",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C30/37',
|
||||
'actions': [
|
||||
"trigger": "C30/37",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C35/45',
|
||||
'actions': [
|
||||
"trigger": "C35/45",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C40/50',
|
||||
'actions': [
|
||||
"trigger": "C40/50",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C45/55',
|
||||
'actions': [
|
||||
"trigger": "C45/55",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C50/60',
|
||||
'actions': [
|
||||
"trigger": "C50/60",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C60/75',
|
||||
'actions': [
|
||||
"trigger": "C60/75",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C70/85',
|
||||
'actions': [
|
||||
"trigger": "C70/85",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C80/95',
|
||||
'actions': [
|
||||
"trigger": "C80/95",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C90/105',
|
||||
'actions': [
|
||||
"trigger": "C90/105",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -202,17 +202,35 @@ class Concrete04PopovicsConcreteSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Concrete04'] = 'Concrete04'
|
||||
strength_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105', 'Custom'] = Field('Custom', description='Choose concrete strength category, to generate fast properties in the following fields.')
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
compressive_strength: str = '-20 MPa' # TODO: unit-aware type
|
||||
material: Literal["Concrete04"] = "Concrete04"
|
||||
strength_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
"Custom",
|
||||
] = Field(
|
||||
"Custom",
|
||||
description="Choose concrete strength category, to generate fast properties in the following fields.",
|
||||
)
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
compressive_strength: str = "-20 MPa" # TODO: unit-aware type
|
||||
strain_at_maximum_strength: float = -2.0e-3
|
||||
strain_at_crushing_strength: float = -3.5e-3
|
||||
initial_stiffness: str = '30 GPa' # TODO: unit-aware type
|
||||
maximum_tensile_strength: str = '2.2 MPa' # TODO: unit-aware type
|
||||
initial_stiffness: str = "30 GPa" # TODO: unit-aware type
|
||||
maximum_tensile_strength: str = "2.2 MPa" # TODO: unit-aware type
|
||||
ultimate_tensile_strain: float = 1e-3
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,176 +23,176 @@ class CyclicDataRow(BaseModel):
|
|||
class Concrete06Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Concrete06',
|
||||
'x-book': 'Uniaxial_Concrete_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Concrete06",
|
||||
"x-book": "Uniaxial_Concrete_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'strength_class',
|
||||
'gid_name': 'Strength_class',
|
||||
'rules': [
|
||||
"field": "strength_class",
|
||||
"gid_name": "Strength_class",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'C12/15',
|
||||
'actions': [
|
||||
"trigger": "C12/15",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C16/20',
|
||||
'actions': [
|
||||
"trigger": "C16/20",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C20/25',
|
||||
'actions': [
|
||||
"trigger": "C20/25",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C25/30',
|
||||
'actions': [
|
||||
"trigger": "C25/30",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C30/37',
|
||||
'actions': [
|
||||
"trigger": "C30/37",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C35/45',
|
||||
'actions': [
|
||||
"trigger": "C35/45",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C40/50',
|
||||
'actions': [
|
||||
"trigger": "C40/50",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C45/55',
|
||||
'actions': [
|
||||
"trigger": "C45/55",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C50/60',
|
||||
'actions': [
|
||||
"trigger": "C50/60",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C60/75',
|
||||
'actions': [
|
||||
"trigger": "C60/75",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C70/85',
|
||||
'actions': [
|
||||
"trigger": "C70/85",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C80/95',
|
||||
'actions': [
|
||||
"trigger": "C80/95",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C90/105',
|
||||
'actions': [
|
||||
"trigger": "C90/105",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -202,20 +202,38 @@ class Concrete06Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Concrete06'] = 'Concrete06'
|
||||
strength_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105', 'Custom'] = Field('Custom', description='Choose concrete strength category, to generate fast properties in the following fields.')
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
concrete_compressive_strength_fc: str = '-20 MPa' # TODO: unit-aware type
|
||||
material: Literal["Concrete06"] = "Concrete06"
|
||||
strength_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
"Custom",
|
||||
] = Field(
|
||||
"Custom",
|
||||
description="Choose concrete strength category, to generate fast properties in the following fields.",
|
||||
)
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
concrete_compressive_strength_fc: str = "-20 MPa" # TODO: unit-aware type
|
||||
strain_at_compressive_strength_e0: float = -2.0e-3
|
||||
compressive_shape_factor_n: int = 1
|
||||
post_peak_compressive_shape_factor_k: int = 1
|
||||
parameter_a1_for_compressive_plastic_strain_definition: float = -2.500e-003
|
||||
tensile_strength_fcr: str = '2.2 MPa' # TODO: unit-aware type
|
||||
tensile_strength_fcr: str = "2.2 MPa" # TODO: unit-aware type
|
||||
tensile_strain_at_peak_stress_ecr: float = 1.100e-004
|
||||
exponent_of_the_tension_stiffering_curve_b: int = 1
|
||||
parameter_a2_for_tensile_plastic_strain_definition: float = 7.700e-004
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,202 +23,202 @@ class CyclicDataRow(BaseModel):
|
|||
class ConcretecmSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'ConcreteCM',
|
||||
'x-book': 'Uniaxial_Concrete_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "ConcreteCM",
|
||||
"x-book": "Uniaxial_Concrete_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'strength_class',
|
||||
'gid_name': 'Strength_class',
|
||||
'rules': [
|
||||
"field": "strength_class",
|
||||
"gid_name": "Strength_class",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'C12/15',
|
||||
'actions': [
|
||||
"trigger": "C12/15",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C16/20',
|
||||
'actions': [
|
||||
"trigger": "C16/20",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C20/25',
|
||||
'actions': [
|
||||
"trigger": "C20/25",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C25/30',
|
||||
'actions': [
|
||||
"trigger": "C25/30",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C30/37',
|
||||
'actions': [
|
||||
"trigger": "C30/37",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C35/45',
|
||||
'actions': [
|
||||
"trigger": "C35/45",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C40/50',
|
||||
'actions': [
|
||||
"trigger": "C40/50",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C45/55',
|
||||
'actions': [
|
||||
"trigger": "C45/55",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C50/60',
|
||||
'actions': [
|
||||
"trigger": "C50/60",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C60/75',
|
||||
'actions': [
|
||||
"trigger": "C60/75",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C70/85',
|
||||
'actions': [
|
||||
"trigger": "C70/85",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C80/95',
|
||||
'actions': [
|
||||
"trigger": "C80/95",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'C90/105',
|
||||
'actions': [
|
||||
"trigger": "C90/105",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'consider_gap_closure',
|
||||
'gid_name': 'Consider_gap_closure',
|
||||
'rules': [
|
||||
"field": "consider_gap_closure",
|
||||
"gid_name": "Consider_gap_closure",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Gap_parameter',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Gap_parameter",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Gap_parameter',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Gap_parameter",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -228,19 +228,37 @@ class ConcretecmSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['ConcreteCM'] = 'ConcreteCM'
|
||||
strength_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105', 'Custom'] = Field('Custom', description='Choose concrete strength category, to generate fast properties in the following fields.')
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
concrete_compressive_strength_fpcc: str = '-20 MPa' # TODO: unit-aware type
|
||||
material: Literal["ConcreteCM"] = "ConcreteCM"
|
||||
strength_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
"Custom",
|
||||
] = Field(
|
||||
"Custom",
|
||||
description="Choose concrete strength category, to generate fast properties in the following fields.",
|
||||
)
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
concrete_compressive_strength_fpcc: str = "-20 MPa" # TODO: unit-aware type
|
||||
strain_at_compressive_strength_epcc: float = -2.0e-3
|
||||
initial_tangent_modulus_ec: str = '30 GPa' # TODO: unit-aware type
|
||||
initial_tangent_modulus_ec: str = "30 GPa" # TODO: unit-aware type
|
||||
shape_parameter_rc_in_tsai_s_equation_for_compression: int = 7
|
||||
critical_strain_on_compression_envelope: float = 1.035
|
||||
tensile_strength_ft: str = '2.2 MPa' # TODO: unit-aware type
|
||||
tensile_strength_ft: str = "2.2 MPa" # TODO: unit-aware type
|
||||
strain_at_tensile_strength_et: float = 1.100e-004
|
||||
shape_parameter_rc_in_tsai_s_equation_for_tension: float = 1.2
|
||||
critical_strain_on_tension_envelope: int = 10000
|
||||
consider_gap_closure: Literal['1', '0'] = '0'
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
consider_gap_closure: Literal["1", "0"] = "0"
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,42 +15,173 @@ from otko.core.catalog.generated.conditions.line_uniform_forces import LineUnifo
|
|||
from otko.core.catalog.generated.conditions.point_displacements import PointDisplacementsSpec
|
||||
from otko.core.catalog.generated.conditions.line_displacements import LineDisplacementsSpec
|
||||
from otko.core.catalog.generated.conditions.surface_displacements import SurfaceDisplacementsSpec
|
||||
from otko.core.catalog.generated.conditions.point_ground_motion_from_record import PointGroundMotionFromRecordSpec
|
||||
from otko.core.catalog.generated.conditions.point_sine_ground_motion import PointSineGroundMotionSpec
|
||||
from otko.core.catalog.generated.conditions.point_equal_constraint_master_node import PointEqualConstraintMasterNodeSpec
|
||||
from otko.core.catalog.generated.conditions.point_equal_constraint_slave_nodes import PointEqualConstraintSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_equal_constraint_slave_nodes import LineEqualConstraintSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.point_rigid_link_master_node import PointRigidLinkMasterNodeSpec
|
||||
from otko.core.catalog.generated.conditions.point_rigid_link_slave_nodes import PointRigidLinkSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_rigid_link_slave_nodes import LineRigidLinkSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.point_rigid_diaphragm_master_node import PointRigidDiaphragmMasterNodeSpec
|
||||
from otko.core.catalog.generated.conditions.point_rigid_diaphragm_slave_nodes import PointRigidDiaphragmSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_rigid_diaphragm_slave_nodes import LineRigidDiaphragmSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.point_ground_motion_from_record import (
|
||||
PointGroundMotionFromRecordSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_sine_ground_motion import (
|
||||
PointSineGroundMotionSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_equal_constraint_master_node import (
|
||||
PointEqualConstraintMasterNodeSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_equal_constraint_slave_nodes import (
|
||||
PointEqualConstraintSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.line_equal_constraint_slave_nodes import (
|
||||
LineEqualConstraintSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_rigid_link_master_node import (
|
||||
PointRigidLinkMasterNodeSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_rigid_link_slave_nodes import (
|
||||
PointRigidLinkSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.line_rigid_link_slave_nodes import (
|
||||
LineRigidLinkSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_rigid_diaphragm_master_node import (
|
||||
PointRigidDiaphragmMasterNodeSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_rigid_diaphragm_slave_nodes import (
|
||||
PointRigidDiaphragmSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.line_rigid_diaphragm_slave_nodes import (
|
||||
LineRigidDiaphragmSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_mass import PointMassSpec
|
||||
from otko.core.catalog.generated.conditions.line_mass import LineMassSpec
|
||||
from otko.core.catalog.generated.conditions.surface_mass import SurfaceMassSpec
|
||||
from otko.core.catalog.generated.conditions.volume_mass import VolumeMassSpec
|
||||
from otko.core.catalog.generated.conditions.line_rayleigh_damping_elements import LineRayleighDampingElementsSpec
|
||||
from otko.core.catalog.generated.conditions.surface_rayleigh_damping_elements import SurfaceRayleighDampingElementsSpec
|
||||
from otko.core.catalog.generated.conditions.volume_rayleigh_damping_elements import VolumeRayleighDampingElementsSpec
|
||||
from otko.core.catalog.generated.conditions.point_rayleigh_damping_nodes import PointRayleighDampingNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_rayleigh_damping_nodes import LineRayleighDampingNodesSpec
|
||||
from otko.core.catalog.generated.conditions.surface_rayleigh_damping_nodes import SurfaceRayleighDampingNodesSpec
|
||||
from otko.core.catalog.generated.conditions.volume_rayleigh_damping_nodes import VolumeRayleighDampingNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_rayleigh_damping_elements import (
|
||||
LineRayleighDampingElementsSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.surface_rayleigh_damping_elements import (
|
||||
SurfaceRayleighDampingElementsSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.volume_rayleigh_damping_elements import (
|
||||
VolumeRayleighDampingElementsSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_rayleigh_damping_nodes import (
|
||||
PointRayleighDampingNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.line_rayleigh_damping_nodes import (
|
||||
LineRayleighDampingNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.surface_rayleigh_damping_nodes import (
|
||||
SurfaceRayleighDampingNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.volume_rayleigh_damping_nodes import (
|
||||
VolumeRayleighDampingNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_zerolength import PointZerolengthSpec
|
||||
from otko.core.catalog.generated.conditions.line_beam_contact_master_end_nodes import LineBeamContactMasterEndNodesSpec
|
||||
from otko.core.catalog.generated.conditions.point_beam_contact_slave_nodes import PointBeamContactSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.point_body_constraint_master_node import PointBodyConstraintMasterNodeSpec
|
||||
from otko.core.catalog.generated.conditions.point_body_constraint_slave_nodes import PointBodyConstraintSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_body_constraint_slave_nodes import LineBodyConstraintSlaveNodesSpec
|
||||
from otko.core.catalog.generated.conditions.line_beam_contact_master_end_nodes import (
|
||||
LineBeamContactMasterEndNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_beam_contact_slave_nodes import (
|
||||
PointBeamContactSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_body_constraint_master_node import (
|
||||
PointBodyConstraintMasterNodeSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.point_body_constraint_slave_nodes import (
|
||||
PointBodyConstraintSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.line_body_constraint_slave_nodes import (
|
||||
LineBodyConstraintSlaveNodesSpec,
|
||||
)
|
||||
from otko.core.catalog.generated.conditions.zerolength import ZerolengthSpec
|
||||
|
||||
|
||||
Restraints = Union[PointRestraintsSpec, LineRestraintsSpec, SurfaceRestraintsSpec]
|
||||
Loads = Union[PointForcesSpec, LineForcesSpec, SurfaceForcesSpec, LineUniformForcesSpec, PointDisplacementsSpec, LineDisplacementsSpec, SurfaceDisplacementsSpec, PointGroundMotionFromRecordSpec, PointSineGroundMotionSpec]
|
||||
Constraints = Union[PointEqualConstraintMasterNodeSpec, PointEqualConstraintSlaveNodesSpec, LineEqualConstraintSlaveNodesSpec, PointRigidLinkMasterNodeSpec, PointRigidLinkSlaveNodesSpec, LineRigidLinkSlaveNodesSpec, PointRigidDiaphragmMasterNodeSpec, PointRigidDiaphragmSlaveNodesSpec, LineRigidDiaphragmSlaveNodesSpec]
|
||||
MassDamping = Union[PointMassSpec, LineMassSpec, SurfaceMassSpec, VolumeMassSpec, LineRayleighDampingElementsSpec, SurfaceRayleighDampingElementsSpec, VolumeRayleighDampingElementsSpec, PointRayleighDampingNodesSpec, LineRayleighDampingNodesSpec, SurfaceRayleighDampingNodesSpec, VolumeRayleighDampingNodesSpec]
|
||||
ZerolengthElements = Union[PointZerolengthSpec, LineBeamContactMasterEndNodesSpec, PointBeamContactSlaveNodesSpec]
|
||||
OldConditions = Union[PointBodyConstraintMasterNodeSpec, PointBodyConstraintSlaveNodesSpec, LineBodyConstraintSlaveNodesSpec, ZerolengthSpec]
|
||||
Loads = Union[
|
||||
PointForcesSpec,
|
||||
LineForcesSpec,
|
||||
SurfaceForcesSpec,
|
||||
LineUniformForcesSpec,
|
||||
PointDisplacementsSpec,
|
||||
LineDisplacementsSpec,
|
||||
SurfaceDisplacementsSpec,
|
||||
PointGroundMotionFromRecordSpec,
|
||||
PointSineGroundMotionSpec,
|
||||
]
|
||||
Constraints = Union[
|
||||
PointEqualConstraintMasterNodeSpec,
|
||||
PointEqualConstraintSlaveNodesSpec,
|
||||
LineEqualConstraintSlaveNodesSpec,
|
||||
PointRigidLinkMasterNodeSpec,
|
||||
PointRigidLinkSlaveNodesSpec,
|
||||
LineRigidLinkSlaveNodesSpec,
|
||||
PointRigidDiaphragmMasterNodeSpec,
|
||||
PointRigidDiaphragmSlaveNodesSpec,
|
||||
LineRigidDiaphragmSlaveNodesSpec,
|
||||
]
|
||||
MassDamping = Union[
|
||||
PointMassSpec,
|
||||
LineMassSpec,
|
||||
SurfaceMassSpec,
|
||||
VolumeMassSpec,
|
||||
LineRayleighDampingElementsSpec,
|
||||
SurfaceRayleighDampingElementsSpec,
|
||||
VolumeRayleighDampingElementsSpec,
|
||||
PointRayleighDampingNodesSpec,
|
||||
LineRayleighDampingNodesSpec,
|
||||
SurfaceRayleighDampingNodesSpec,
|
||||
VolumeRayleighDampingNodesSpec,
|
||||
]
|
||||
ZerolengthElements = Union[
|
||||
PointZerolengthSpec, LineBeamContactMasterEndNodesSpec, PointBeamContactSlaveNodesSpec
|
||||
]
|
||||
OldConditions = Union[
|
||||
PointBodyConstraintMasterNodeSpec,
|
||||
PointBodyConstraintSlaveNodesSpec,
|
||||
LineBodyConstraintSlaveNodesSpec,
|
||||
ZerolengthSpec,
|
||||
]
|
||||
|
||||
__all__ = ['PointRestraintsSpec', 'LineRestraintsSpec', 'SurfaceRestraintsSpec', 'PointForcesSpec', 'LineForcesSpec', 'SurfaceForcesSpec', 'LineUniformForcesSpec', 'PointDisplacementsSpec', 'LineDisplacementsSpec', 'SurfaceDisplacementsSpec', 'PointGroundMotionFromRecordSpec', 'PointSineGroundMotionSpec', 'PointEqualConstraintMasterNodeSpec', 'PointEqualConstraintSlaveNodesSpec', 'LineEqualConstraintSlaveNodesSpec', 'PointRigidLinkMasterNodeSpec', 'PointRigidLinkSlaveNodesSpec', 'LineRigidLinkSlaveNodesSpec', 'PointRigidDiaphragmMasterNodeSpec', 'PointRigidDiaphragmSlaveNodesSpec', 'LineRigidDiaphragmSlaveNodesSpec', 'PointMassSpec', 'LineMassSpec', 'SurfaceMassSpec', 'VolumeMassSpec', 'LineRayleighDampingElementsSpec', 'SurfaceRayleighDampingElementsSpec', 'VolumeRayleighDampingElementsSpec', 'PointRayleighDampingNodesSpec', 'LineRayleighDampingNodesSpec', 'SurfaceRayleighDampingNodesSpec', 'VolumeRayleighDampingNodesSpec', 'PointZerolengthSpec', 'LineBeamContactMasterEndNodesSpec', 'PointBeamContactSlaveNodesSpec', 'PointBodyConstraintMasterNodeSpec', 'PointBodyConstraintSlaveNodesSpec', 'LineBodyConstraintSlaveNodesSpec', 'ZerolengthSpec', 'Restraints', 'Loads', 'Constraints', 'MassDamping', 'ZerolengthElements', 'OldConditions']
|
||||
__all__ = [
|
||||
"PointRestraintsSpec",
|
||||
"LineRestraintsSpec",
|
||||
"SurfaceRestraintsSpec",
|
||||
"PointForcesSpec",
|
||||
"LineForcesSpec",
|
||||
"SurfaceForcesSpec",
|
||||
"LineUniformForcesSpec",
|
||||
"PointDisplacementsSpec",
|
||||
"LineDisplacementsSpec",
|
||||
"SurfaceDisplacementsSpec",
|
||||
"PointGroundMotionFromRecordSpec",
|
||||
"PointSineGroundMotionSpec",
|
||||
"PointEqualConstraintMasterNodeSpec",
|
||||
"PointEqualConstraintSlaveNodesSpec",
|
||||
"LineEqualConstraintSlaveNodesSpec",
|
||||
"PointRigidLinkMasterNodeSpec",
|
||||
"PointRigidLinkSlaveNodesSpec",
|
||||
"LineRigidLinkSlaveNodesSpec",
|
||||
"PointRigidDiaphragmMasterNodeSpec",
|
||||
"PointRigidDiaphragmSlaveNodesSpec",
|
||||
"LineRigidDiaphragmSlaveNodesSpec",
|
||||
"PointMassSpec",
|
||||
"LineMassSpec",
|
||||
"SurfaceMassSpec",
|
||||
"VolumeMassSpec",
|
||||
"LineRayleighDampingElementsSpec",
|
||||
"SurfaceRayleighDampingElementsSpec",
|
||||
"VolumeRayleighDampingElementsSpec",
|
||||
"PointRayleighDampingNodesSpec",
|
||||
"LineRayleighDampingNodesSpec",
|
||||
"SurfaceRayleighDampingNodesSpec",
|
||||
"VolumeRayleighDampingNodesSpec",
|
||||
"PointZerolengthSpec",
|
||||
"LineBeamContactMasterEndNodesSpec",
|
||||
"PointBeamContactSlaveNodesSpec",
|
||||
"PointBodyConstraintMasterNodeSpec",
|
||||
"PointBodyConstraintSlaveNodesSpec",
|
||||
"LineBodyConstraintSlaveNodesSpec",
|
||||
"ZerolengthSpec",
|
||||
"Restraints",
|
||||
"Loads",
|
||||
"Constraints",
|
||||
"MassDamping",
|
||||
"ZerolengthElements",
|
||||
"OldConditions",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -15,10 +15,9 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineBeamContactMasterEndNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Beam_contact_master_end_nodes',
|
||||
'x-book': 'ZeroLength_Elements',
|
||||
"x-gid-name": "Line_Beam_contact_master_end_nodes",
|
||||
"x-book": "ZeroLength_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
beam_contact_id: int = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -17,80 +17,80 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineBodyConstraintSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Body_constraint_slave_nodes',
|
||||
'x-book': 'Old_Conditions',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Line_Body_constraint_slave_nodes",
|
||||
"x-book": "Old_Conditions",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'fast_constraints',
|
||||
'gid_name': 'Fast_constraints',
|
||||
'rules': [
|
||||
"field": "fast_constraints",
|
||||
"gid_name": "Fast_constraints",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Pinned_Connection',
|
||||
'actions': [
|
||||
"trigger": "Pinned_Connection",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fixed_Connection',
|
||||
'actions': [
|
||||
"trigger": "Fixed_Connection",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -100,12 +100,13 @@ class LineBodyConstraintSlaveNodesSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
line_constraint_id_number: int = Field(1, description='Enter a positive integer number for the body constraint.')
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
fast_constraints: Literal['Pinned_Connection', 'Fixed_Connection'] = 'Pinned_Connection'
|
||||
|
||||
line_constraint_id_number: int = Field(
|
||||
1, description="Enter a positive integer number for the body constraint."
|
||||
)
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
fast_constraints: Literal["Pinned_Connection", "Fixed_Connection"] = "Pinned_Connection"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineDisplacementsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Displacements',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Line_Displacements",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
x_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
y_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
z_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
|
||||
x_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
y_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
z_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,16 +17,17 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineEqualConstraintSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Equal_constraint_slave_nodes',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Line_Equal_constraint_slave_nodes",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
equal_constraint_id: int = Field(1, description='Enter a positive integer number for the equal constraint.')
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
|
||||
equal_constraint_id: int = Field(
|
||||
1, description="Enter a positive integer number for the equal constraint."
|
||||
)
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineForcesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Forces',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Line_Forces",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
x_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
y_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
z_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
x_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
y_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
z_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
|
||||
x_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
y_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
z_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
x_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
y_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
z_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,16 +17,15 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineMassSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Mass',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Line_Mass",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
mass_dof_values: Literal[':'] = ':'
|
||||
x_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
y_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
z_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
|
||||
mass_dof_values: Literal[":"] = ":"
|
||||
x_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
y_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
z_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineRayleighDampingElementsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Rayleigh_Damping-Elements',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Line_Rayleigh_Damping-Elements",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class LineRayleighDampingElementsSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineRayleighDampingNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Rayleigh_Damping-Nodes',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Line_Rayleigh_Damping-Nodes",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class LineRayleighDampingNodesSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,290 +17,290 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineRestraintsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Restraints',
|
||||
'x-book': 'Restraints',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Line_Restraints",
|
||||
"x-book": "Restraints",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'fast_restraints',
|
||||
'gid_name': 'Fast_restraints',
|
||||
'rules': [
|
||||
"field": "fast_restraints",
|
||||
"gid_name": "Fast_restraints",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Fix_XYZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_XYZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_XY',
|
||||
'actions': [
|
||||
"trigger": "Fix_XY",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_XZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_XZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_YZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_YZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XYZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_XYZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XY',
|
||||
'actions': [
|
||||
"trigger": "Pin_XY",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_XZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_YZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_YZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -310,12 +310,13 @@ class LineRestraintsSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
fluid_pressure: Literal['1', '0'] = '0'
|
||||
fast_restraints: Literal['Fix_XYZ', 'Fix_XY', 'Fix_XZ', 'Fix_YZ', 'Pin_XYZ', 'Pin_XY', 'Pin_XZ', 'Pin_YZ'] = 'Fix_XYZ'
|
||||
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
fluid_pressure: Literal["1", "0"] = "0"
|
||||
fast_restraints: Literal[
|
||||
"Fix_XYZ", "Fix_XY", "Fix_XZ", "Fix_YZ", "Pin_XYZ", "Pin_XY", "Pin_XZ", "Pin_YZ"
|
||||
] = "Fix_XYZ"
|
||||
|
|
|
|||
|
|
@ -17,11 +17,10 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineRigidDiaphragmSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Rigid_diaphragm_slave_nodes',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Line_Rigid_diaphragm_slave_nodes",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
rigid_diaphragm_id: int = 1
|
||||
rigid_plane: Literal['XY', 'YZ', 'ZX'] = 'XY'
|
||||
|
||||
rigid_plane: Literal["XY", "YZ", "ZX"] = "XY"
|
||||
|
|
|
|||
|
|
@ -17,11 +17,12 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineRigidLinkSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Rigid_link_slave_nodes',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Line_Rigid_link_slave_nodes",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
rigid_link_id: int = Field(1, description='Give a positive integer number for body constraint group.')
|
||||
rigid_link_type: Literal['Bar', 'Beam'] = 'Beam'
|
||||
|
||||
rigid_link_id: int = Field(
|
||||
1, description="Give a positive integer number for body constraint group."
|
||||
)
|
||||
rigid_link_type: Literal["Bar", "Beam"] = "Beam"
|
||||
|
|
|
|||
|
|
@ -15,12 +15,11 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LineUniformForcesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Line_Uniform_Forces',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Line_Uniform_Forces",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
uniform_load_along_line_longitudinal_axis: str = '0.0 kN/m' # TODO: unit-aware type
|
||||
uniform_load_acting_in_local_y_direction: str = '0.0 kN/m' # TODO: unit-aware type
|
||||
uniform_load_acting_in_local_z_direction: str = '0.0 kN/m' # TODO: unit-aware type
|
||||
|
||||
uniform_load_along_line_longitudinal_axis: str = "0.0 kN/m" # TODO: unit-aware type
|
||||
uniform_load_acting_in_local_y_direction: str = "0.0 kN/m" # TODO: unit-aware type
|
||||
uniform_load_acting_in_local_z_direction: str = "0.0 kN/m" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,15 +17,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointBeamContactSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Beam_contact_slave_nodes',
|
||||
'x-book': 'ZeroLength_Elements',
|
||||
"x-gid-name": "Point_Beam_contact_slave_nodes",
|
||||
"x-book": "ZeroLength_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
beam_contact_id: int = 1
|
||||
contact_material_mat_multidimensional_nd_materials_user_materials: str = 'Contact'
|
||||
width_radius: str = '0.25m' # TODO: unit-aware type
|
||||
contact_material_mat_multidimensional_nd_materials_user_materials: str = "Contact"
|
||||
width_radius: str = "0.25m" # TODO: unit-aware type
|
||||
gap_tolerance: float = 1.0e-10
|
||||
force_tolerance: float = 1.0e-10
|
||||
initial_assumption: Literal['Contact', 'No_Contact'] = 'Contact'
|
||||
|
||||
initial_assumption: Literal["Contact", "No_Contact"] = "Contact"
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointBodyConstraintMasterNodeSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Body_constraint_master_node',
|
||||
'x-book': 'Old_Conditions',
|
||||
"x-gid-name": "Point_Body_constraint_master_node",
|
||||
"x-book": "Old_Conditions",
|
||||
}
|
||||
)
|
||||
|
||||
body_constraint_id_number: int = Field(1, description='Give a positive integer number for body constraint group.')
|
||||
|
||||
body_constraint_id_number: int = Field(
|
||||
1, description="Give a positive integer number for body constraint group."
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,80 +17,80 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointBodyConstraintSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Body_constraint_slave_nodes',
|
||||
'x-book': 'Old_Conditions',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Point_Body_constraint_slave_nodes",
|
||||
"x-book": "Old_Conditions",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'fast_constraints',
|
||||
'gid_name': 'Fast_constraints',
|
||||
'rules': [
|
||||
"field": "fast_constraints",
|
||||
"gid_name": "Fast_constraints",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Pinned_Connection',
|
||||
'actions': [
|
||||
"trigger": "Pinned_Connection",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fixed_Connection',
|
||||
'actions': [
|
||||
"trigger": "Fixed_Connection",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -100,12 +100,13 @@ class PointBodyConstraintSlaveNodesSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
body_constraint_id_number: int = Field(1, description='Give a positive integer number for body constraint group.')
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
fast_constraints: Literal['Pinned_Connection', 'Fixed_Connection'] = 'Pinned_Connection'
|
||||
|
||||
body_constraint_id_number: int = Field(
|
||||
1, description="Give a positive integer number for body constraint group."
|
||||
)
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
fast_constraints: Literal["Pinned_Connection", "Fixed_Connection"] = "Pinned_Connection"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointDisplacementsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Displacements',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Point_Displacements",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
x_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
y_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
z_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
|
||||
x_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
y_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
z_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointEqualConstraintMasterNodeSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Equal_constraint_master_node',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Point_Equal_constraint_master_node",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
equal_constraint_id: int = Field(1, description='Give a positive integer number for body constraint group.')
|
||||
|
||||
equal_constraint_id: int = Field(
|
||||
1, description="Give a positive integer number for body constraint group."
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,16 +17,17 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointEqualConstraintSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Equal_constraint_slave_nodes',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Point_Equal_constraint_slave_nodes",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
equal_constraint_id: int = Field(1, description='Give a positive integer number for body constraint group.')
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
|
||||
equal_constraint_id: int = Field(
|
||||
1, description="Give a positive integer number for body constraint group."
|
||||
)
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointForcesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Forces',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Point_Forces",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
x_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
y_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
z_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
x_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
y_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
z_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
|
||||
x_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
y_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
z_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
x_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
y_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
z_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,11 +17,10 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointGroundMotionFromRecordSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Ground_Motion_from_Record',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Point_Ground_Motion_from_Record",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
record_file: str = 'Ground_Motion_Record'
|
||||
ground_motion_direction: Literal['Ux', 'Uy', 'Uz', 'Rx', 'Ry', 'Rz'] = 'Ux'
|
||||
|
||||
record_file: str = "Ground_Motion_Record"
|
||||
ground_motion_direction: Literal["Ux", "Uy", "Uz", "Rx", "Ry", "Rz"] = "Ux"
|
||||
|
|
|
|||
|
|
@ -17,16 +17,15 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointMassSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Mass',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Point_Mass",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
mass_dof_values: Literal[':'] = ':'
|
||||
x_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
y_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
z_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
|
||||
mass_dof_values: Literal[":"] = ":"
|
||||
x_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
y_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
z_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointRayleighDampingNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Rayleigh_Damping-Nodes',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Point_Rayleigh_Damping-Nodes",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class PointRayleighDampingNodesSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,290 +17,290 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointRestraintsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Restraints',
|
||||
'x-book': 'Restraints',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Point_Restraints",
|
||||
"x-book": "Restraints",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'fast_restraints',
|
||||
'gid_name': 'Fast_restraints',
|
||||
'rules': [
|
||||
"field": "fast_restraints",
|
||||
"gid_name": "Fast_restraints",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Fix_XYZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_XYZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_XY',
|
||||
'actions': [
|
||||
"trigger": "Fix_XY",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_XZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_XZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_YZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_YZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XYZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_XYZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XY',
|
||||
'actions': [
|
||||
"trigger": "Pin_XY",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_XZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_YZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_YZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -310,12 +310,13 @@ class PointRestraintsSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
fluid_pressure: Literal['1', '0'] = '0'
|
||||
fast_restraints: Literal['Fix_XYZ', 'Fix_XY', 'Fix_XZ', 'Fix_YZ', 'Pin_XYZ', 'Pin_XY', 'Pin_XZ', 'Pin_YZ'] = 'Fix_XYZ'
|
||||
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
fluid_pressure: Literal["1", "0"] = "0"
|
||||
fast_restraints: Literal[
|
||||
"Fix_XYZ", "Fix_XY", "Fix_XZ", "Fix_YZ", "Pin_XYZ", "Pin_XY", "Pin_XZ", "Pin_YZ"
|
||||
] = "Fix_XYZ"
|
||||
|
|
|
|||
|
|
@ -15,10 +15,9 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointRigidDiaphragmMasterNodeSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Rigid_diaphragm_master_node',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Point_Rigid_diaphragm_master_node",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
rigid_diaphragm_id: int = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -17,11 +17,10 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointRigidDiaphragmSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Rigid_diaphragm_slave_nodes',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Point_Rigid_diaphragm_slave_nodes",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
rigid_diaphragm_id: int = 1
|
||||
rigid_plane: Literal['XY', 'YZ', 'ZX'] = 'XY'
|
||||
|
||||
rigid_plane: Literal["XY", "YZ", "ZX"] = "XY"
|
||||
|
|
|
|||
|
|
@ -15,10 +15,9 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointRigidLinkMasterNodeSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Rigid_link_master_node',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Point_Rigid_link_master_node",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
rigid_link_id: int = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -17,11 +17,12 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointRigidLinkSlaveNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Rigid_link_slave_nodes',
|
||||
'x-book': 'Constraints',
|
||||
"x-gid-name": "Point_Rigid_link_slave_nodes",
|
||||
"x-book": "Constraints",
|
||||
}
|
||||
)
|
||||
|
||||
rigid_link_id: int = Field(1, description='Give a positive integer number for body constraint group.')
|
||||
rigid_link_type: Literal['Bar', 'Beam'] = 'Beam'
|
||||
|
||||
rigid_link_id: int = Field(
|
||||
1, description="Give a positive integer number for body constraint group."
|
||||
)
|
||||
rigid_link_type: Literal["Bar", "Beam"] = "Beam"
|
||||
|
|
|
|||
|
|
@ -17,40 +17,40 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointSineGroundMotionSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_Sine_Ground_Motion',
|
||||
'x-book': 'Loads',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Point_Sine_Ground_Motion",
|
||||
"x-book": "Loads",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'type',
|
||||
'gid_name': 'Type',
|
||||
'rules': [
|
||||
"field": "type",
|
||||
"gid_name": "Type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Acceleration',
|
||||
'actions': [
|
||||
"trigger": "Acceleration",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Acceleration_Amplitude',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Acceleration_Amplitude",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Displacement_Amplitude',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Displacement_Amplitude",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Displacement',
|
||||
'actions': [
|
||||
"trigger": "Displacement",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Acceleration_Amplitude',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Acceleration_Amplitude",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Displacement_Amplitude',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Displacement_Amplitude",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -60,11 +60,10 @@ class PointSineGroundMotionSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
type: Literal['Acceleration', 'Displacement'] = 'Displacement'
|
||||
ground_motion_direction: Literal['Ux', 'Uy', 'Uz', 'Rx', 'Ry', 'Rz'] = 'Ux'
|
||||
acceleration_amplitude: str = '1.0m/s^2' # TODO: unit-aware type
|
||||
displacement_amplitude: str = '1.0m' # TODO: unit-aware type
|
||||
period: str = '0.6sec' # TODO: unit-aware type
|
||||
duration: str = '10sec' # TODO: unit-aware type
|
||||
type: Literal["Acceleration", "Displacement"] = "Displacement"
|
||||
ground_motion_direction: Literal["Ux", "Uy", "Uz", "Rx", "Ry", "Rz"] = "Ux"
|
||||
acceleration_amplitude: str = "1.0m/s^2" # TODO: unit-aware type
|
||||
displacement_amplitude: str = "1.0m" # TODO: unit-aware type
|
||||
period: str = "0.6sec" # TODO: unit-aware type
|
||||
duration: str = "10sec" # TODO: unit-aware type
|
||||
shift: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,160 +17,160 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PointZerolengthSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Point_ZeroLength',
|
||||
'x-book': 'ZeroLength_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Point_ZeroLength",
|
||||
"x-book": "ZeroLength_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_ux',
|
||||
'gid_name': 'Activate_Ux',
|
||||
'rules': [
|
||||
"field": "activate_ux",
|
||||
"gid_name": "Activate_Ux",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Ux_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Ux_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Ux_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Ux_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_uy',
|
||||
'gid_name': 'Activate_Uy',
|
||||
'rules': [
|
||||
"field": "activate_uy",
|
||||
"gid_name": "Activate_Uy",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Uy_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Uy_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Uy_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Uy_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_uz',
|
||||
'gid_name': 'Activate_Uz',
|
||||
'rules': [
|
||||
"field": "activate_uz",
|
||||
"gid_name": "Activate_Uz",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Uz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Uz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Uz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Uz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_rx',
|
||||
'gid_name': 'Activate_Rx',
|
||||
'rules': [
|
||||
"field": "activate_rx",
|
||||
"gid_name": "Activate_Rx",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Rx_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Rx_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rx_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rx_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_ry',
|
||||
'gid_name': 'Activate_Ry',
|
||||
'rules': [
|
||||
"field": "activate_ry",
|
||||
"gid_name": "Activate_Ry",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Ry_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Ry_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Ry_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Ry_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_rz',
|
||||
'gid_name': 'Activate_Rz',
|
||||
'rules': [
|
||||
"field": "activate_rz",
|
||||
"gid_name": "Activate_Rz",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Rz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Rz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -181,16 +181,15 @@ class PointZerolengthSpec(BaseModel):
|
|||
)
|
||||
|
||||
zerolength_id: int = 1
|
||||
activate_ux: Literal['0', '1'] = '1'
|
||||
ux_material: str = 'Elastic'
|
||||
activate_uy: Literal['0', '1'] = '0'
|
||||
uy_material: str = 'Elastic'
|
||||
activate_uz: Literal['0', '1'] = '0'
|
||||
uz_material: str = 'Elastic'
|
||||
activate_rx: Literal['0', '1'] = '0'
|
||||
rx_material: str = 'Elastic'
|
||||
activate_ry: Literal['0', '1'] = '0'
|
||||
ry_material: str = 'Elastic'
|
||||
activate_rz: Literal['0', '1'] = '0'
|
||||
rz_material: str = 'Elastic'
|
||||
|
||||
activate_ux: Literal["0", "1"] = "1"
|
||||
ux_material: str = "Elastic"
|
||||
activate_uy: Literal["0", "1"] = "0"
|
||||
uy_material: str = "Elastic"
|
||||
activate_uz: Literal["0", "1"] = "0"
|
||||
uz_material: str = "Elastic"
|
||||
activate_rx: Literal["0", "1"] = "0"
|
||||
rx_material: str = "Elastic"
|
||||
activate_ry: Literal["0", "1"] = "0"
|
||||
ry_material: str = "Elastic"
|
||||
activate_rz: Literal["0", "1"] = "0"
|
||||
rz_material: str = "Elastic"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SurfaceDisplacementsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Surface_Displacements',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Surface_Displacements",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
x_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
y_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
z_displacement: str = '0.0m' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0 rad' # TODO: unit-aware type
|
||||
|
||||
x_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
y_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
z_displacement: str = "0.0m" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0 rad" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -15,15 +15,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SurfaceForcesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Surface_Forces',
|
||||
'x-book': 'Loads',
|
||||
"x-gid-name": "Surface_Forces",
|
||||
"x-book": "Loads",
|
||||
}
|
||||
)
|
||||
|
||||
x_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
y_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
z_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
x_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
y_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
z_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
|
||||
x_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
y_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
z_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
x_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
y_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
z_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,16 +17,15 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SurfaceMassSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Surface_Mass',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Surface_Mass",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
mass_dof_values: Literal[':'] = ':'
|
||||
x_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
y_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
z_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
|
||||
mass_dof_values: Literal[":"] = ":"
|
||||
x_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
y_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
z_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SurfaceRayleighDampingElementsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Surface_Rayleigh_Damping-Elements',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Surface_Rayleigh_Damping-Elements",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class SurfaceRayleighDampingElementsSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SurfaceRayleighDampingNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Surface_Rayleigh_Damping-Nodes',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Surface_Rayleigh_Damping-Nodes",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class SurfaceRayleighDampingNodesSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,290 +17,290 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SurfaceRestraintsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Surface_Restraints',
|
||||
'x-book': 'Restraints',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Surface_Restraints",
|
||||
"x-book": "Restraints",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'fast_restraints',
|
||||
'gid_name': 'Fast_restraints',
|
||||
'rules': [
|
||||
"field": "fast_restraints",
|
||||
"gid_name": "Fast_restraints",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Fix_XYZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_XYZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_XY',
|
||||
'actions': [
|
||||
"trigger": "Fix_XY",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_XZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_XZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Fix_YZ',
|
||||
'actions': [
|
||||
"trigger": "Fix_YZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XYZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_XYZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XY',
|
||||
'actions': [
|
||||
"trigger": "Pin_XY",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_XZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_XZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Pin_YZ',
|
||||
'actions': [
|
||||
"trigger": "Pin_YZ",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Translation',
|
||||
'target': '1',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Translation",
|
||||
"target": "1",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Translation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Translation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'X-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "X-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Y-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Y-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Z-Rotation',
|
||||
'target': '0',
|
||||
"action": "RESTORE",
|
||||
"field": "Z-Rotation",
|
||||
"target": "0",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -310,12 +310,13 @@ class SurfaceRestraintsSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
x_translation: Literal['1', '0'] = '1'
|
||||
y_translation: Literal['1', '0'] = '1'
|
||||
z_translation: Literal['1', '0'] = '1'
|
||||
x_rotation: Literal['1', '0'] = '1'
|
||||
y_rotation: Literal['1', '0'] = '1'
|
||||
z_rotation: Literal['1', '0'] = '1'
|
||||
fluid_pressure: Literal['1', '0'] = '0'
|
||||
fast_restraints: Literal['Fix_XYZ', 'Fix_XY', 'Fix_XZ', 'Fix_YZ', 'Pin_XYZ', 'Pin_XY', 'Pin_XZ', 'Pin_YZ'] = 'Fix_XYZ'
|
||||
|
||||
x_translation: Literal["1", "0"] = "1"
|
||||
y_translation: Literal["1", "0"] = "1"
|
||||
z_translation: Literal["1", "0"] = "1"
|
||||
x_rotation: Literal["1", "0"] = "1"
|
||||
y_rotation: Literal["1", "0"] = "1"
|
||||
z_rotation: Literal["1", "0"] = "1"
|
||||
fluid_pressure: Literal["1", "0"] = "0"
|
||||
fast_restraints: Literal[
|
||||
"Fix_XYZ", "Fix_XY", "Fix_XZ", "Fix_YZ", "Pin_XYZ", "Pin_XY", "Pin_XZ", "Pin_YZ"
|
||||
] = "Fix_XYZ"
|
||||
|
|
|
|||
|
|
@ -17,16 +17,15 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class VolumeMassSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Volume_Mass',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Volume_Mass",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
mass_dof_values: Literal[':'] = ':'
|
||||
x_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
y_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
z_direction: str = '0.0ton' # TODO: unit-aware type
|
||||
x_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
y_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
z_rotation: str = '0.0ton' # TODO: unit-aware type
|
||||
|
||||
mass_dof_values: Literal[":"] = ":"
|
||||
x_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
y_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
z_direction: str = "0.0ton" # TODO: unit-aware type
|
||||
x_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
y_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
z_rotation: str = "0.0ton" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class VolumeRayleighDampingElementsSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Volume_Rayleigh_Damping-Elements',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Volume_Rayleigh_Damping-Elements",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class VolumeRayleighDampingElementsSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class VolumeRayleighDampingNodesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Volume_Rayleigh_Damping-Nodes',
|
||||
'x-book': 'Mass/Damping',
|
||||
"x-gid-name": "Volume_Rayleigh_Damping-Nodes",
|
||||
"x-book": "Mass/Damping",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -25,4 +25,3 @@ class VolumeRayleighDampingNodesSpec(BaseModel):
|
|||
betak: float = 0.0
|
||||
betakinit: float = 0.0
|
||||
betakcomm: float = 0.0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,160 +17,160 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ZerolengthSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'ZeroLength',
|
||||
'x-book': 'Old_Conditions',
|
||||
'dependencies': [
|
||||
"x-gid-name": "ZeroLength",
|
||||
"x-book": "Old_Conditions",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_ux',
|
||||
'gid_name': 'Activate_Ux',
|
||||
'rules': [
|
||||
"field": "activate_ux",
|
||||
"gid_name": "Activate_Ux",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Ux_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Ux_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Ux_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Ux_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_uy',
|
||||
'gid_name': 'Activate_Uy',
|
||||
'rules': [
|
||||
"field": "activate_uy",
|
||||
"gid_name": "Activate_Uy",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Uy_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Uy_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Uy_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Uy_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_uz',
|
||||
'gid_name': 'Activate_Uz',
|
||||
'rules': [
|
||||
"field": "activate_uz",
|
||||
"gid_name": "Activate_Uz",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Uz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Uz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Uz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Uz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_rx',
|
||||
'gid_name': 'Activate_Rx',
|
||||
'rules': [
|
||||
"field": "activate_rx",
|
||||
"gid_name": "Activate_Rx",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Rx_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Rx_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rx_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rx_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_ry',
|
||||
'gid_name': 'Activate_Ry',
|
||||
'rules': [
|
||||
"field": "activate_ry",
|
||||
"gid_name": "Activate_Ry",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Ry_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Ry_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Ry_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Ry_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_rz',
|
||||
'gid_name': 'Activate_Rz',
|
||||
'rules': [
|
||||
"field": "activate_rz",
|
||||
"gid_name": "Activate_Rz",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Rz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Rz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rz_material',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rz_material",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -181,16 +181,15 @@ class ZerolengthSpec(BaseModel):
|
|||
)
|
||||
|
||||
zerolength_id_number: int = 1
|
||||
activate_ux: Literal['0', '1'] = '1'
|
||||
ux_material: str = 'Elastic'
|
||||
activate_uy: Literal['0', '1'] = '0'
|
||||
uy_material: str = 'Elastic'
|
||||
activate_uz: Literal['0', '1'] = '0'
|
||||
uz_material: str = 'Elastic'
|
||||
activate_rx: Literal['0', '1'] = '0'
|
||||
rx_material: str = 'Elastic'
|
||||
activate_ry: Literal['0', '1'] = '0'
|
||||
ry_material: str = 'Elastic'
|
||||
activate_rz: Literal['0', '1'] = '0'
|
||||
rz_material: str = 'Elastic'
|
||||
|
||||
activate_ux: Literal["0", "1"] = "1"
|
||||
ux_material: str = "Elastic"
|
||||
activate_uy: Literal["0", "1"] = "0"
|
||||
uy_material: str = "Elastic"
|
||||
activate_uz: Literal["0", "1"] = "0"
|
||||
uz_material: str = "Elastic"
|
||||
activate_rx: Literal["0", "1"] = "0"
|
||||
rx_material: str = "Elastic"
|
||||
activate_ry: Literal["0", "1"] = "0"
|
||||
ry_material: str = "Elastic"
|
||||
activate_rz: Literal["0", "1"] = "0"
|
||||
rz_material: str = "Elastic"
|
||||
|
|
|
|||
|
|
@ -17,14 +17,13 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ContactSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Contact',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
"x-gid-name": "Contact",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['Contact'] = 'Contact'
|
||||
material: Literal["Contact"] = "Contact"
|
||||
frictional_coefficient: float = 0.1
|
||||
stiffness_parameter: str = '1000.0kN/m' # TODO: unit-aware type
|
||||
stiffness_parameter: str = "1000.0kN/m" # TODO: unit-aware type
|
||||
cohesive_intercept: float = 0.0
|
||||
tensile_strength: str = '0.0kN' # TODO: unit-aware type
|
||||
|
||||
tensile_strength: str = "0.0kN" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,196 +17,196 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class CorotationalTrussSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Corotational_Truss',
|
||||
'x-book': 'Truss_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Corotational_Truss",
|
||||
"x-book": "Truss_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'cross_section',
|
||||
'gid_name': 'Cross_section',
|
||||
'rules': [
|
||||
"field": "cross_section",
|
||||
"gid_name": "Cross_section",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Rectangular',
|
||||
'actions': [
|
||||
"trigger": "Rectangular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Circular',
|
||||
'actions': [
|
||||
"trigger": "Circular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Tee',
|
||||
'actions': [
|
||||
"trigger": "Tee",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'General',
|
||||
'actions': [
|
||||
"trigger": "General",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'set_modification_factors',
|
||||
'gid_name': 'Set_modification_factors',
|
||||
'rules': [
|
||||
"field": "set_modification_factors",
|
||||
"gid_name": "Set_modification_factors",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -216,21 +216,22 @@ class CorotationalTrussSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
element_type: Literal['CorotationalTruss'] = 'CorotationalTruss'
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
material: str = Field('Elastic', description='Choose one existing material to use its parameters.')
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
consider_consistent_mass_matrix: Literal['1', '0'] = '0'
|
||||
include_rayleigh_damping: Literal['1', '0'] = '0'
|
||||
weight_density: str = '0.0 kN/m^3' # TODO: unit-aware type
|
||||
cross_section: Literal['Rectangular', 'Tee', 'Circular', 'General'] = 'General'
|
||||
height_h: str = '0.5m' # TODO: unit-aware type
|
||||
width_b: str = '0.3m' # TODO: unit-aware type
|
||||
diameter_d: str = '0.5m' # TODO: unit-aware type
|
||||
width_bf: str = '0.4m' # TODO: unit-aware type
|
||||
height_hf: str = '0.15m' # TODO: unit-aware type
|
||||
width_bw: str = '0.25m' # TODO: unit-aware type
|
||||
area_a: str = '1 m^2' # TODO: unit-aware type
|
||||
set_modification_factors: Literal['0', '1'] = '0'
|
||||
element_type: Literal["CorotationalTruss"] = "CorotationalTruss"
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
material: str = Field(
|
||||
"Elastic", description="Choose one existing material to use its parameters."
|
||||
)
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
consider_consistent_mass_matrix: Literal["1", "0"] = "0"
|
||||
include_rayleigh_damping: Literal["1", "0"] = "0"
|
||||
weight_density: str = "0.0 kN/m^3" # TODO: unit-aware type
|
||||
cross_section: Literal["Rectangular", "Tee", "Circular", "General"] = "General"
|
||||
height_h: str = "0.5m" # TODO: unit-aware type
|
||||
width_b: str = "0.3m" # TODO: unit-aware type
|
||||
diameter_d: str = "0.5m" # TODO: unit-aware type
|
||||
width_bf: str = "0.4m" # TODO: unit-aware type
|
||||
height_hf: str = "0.15m" # TODO: unit-aware type
|
||||
width_bw: str = "0.25m" # TODO: unit-aware type
|
||||
area_a: str = "1 m^2" # TODO: unit-aware type
|
||||
set_modification_factors: Literal["0", "1"] = "0"
|
||||
mod_a: int = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -17,21 +17,22 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class Damage2pSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Damage2p',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
"x-gid-name": "Damage2p",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['Damage2p'] = 'Damage2p'
|
||||
concrete_compressive_strength: str = '-20MPa' # TODO: unit-aware type
|
||||
material: Literal["Damage2p"] = "Damage2p"
|
||||
concrete_compressive_strength: str = "-20MPa" # TODO: unit-aware type
|
||||
calculate_default_values_update_to_apply_cb_1_0: int = 1
|
||||
young_modulus: str = '21.243GPa' # TODO: unit-aware type
|
||||
concrete_tensile_strength: str = '2.0MPa' # TODO: unit-aware type
|
||||
young_modulus: str = "21.243GPa" # TODO: unit-aware type
|
||||
concrete_tensile_strength: str = "2.0MPa" # TODO: unit-aware type
|
||||
poisson_coefficient: float = 0.15
|
||||
tension_fracture_energy_density: str = '3.465e-004GPa' # TODO: unit-aware type
|
||||
comp_fracture_energy_density: str = '1.177e-001GPa' # TODO: unit-aware type
|
||||
tension_fracture_energy_density: str = "3.465e-004GPa" # TODO: unit-aware type
|
||||
comp_fracture_energy_density: str = "1.177e-001GPa" # TODO: unit-aware type
|
||||
parameter_of_plastic_volume_change: float = 0.20
|
||||
linear_hardening_parameter: str = '5.311GPa' # TODO: unit-aware type
|
||||
linear_hardening_parameter: str = "5.311GPa" # TODO: unit-aware type
|
||||
isotropic_kinematic_hardening_ratio: float = 0.50
|
||||
computational_stiffness_matrix: Literal['Computational_tangent', 'Damaged_secant_stiffness'] = 'Computational_tangent'
|
||||
|
||||
computational_stiffness_matrix: Literal["Computational_tangent", "Damaged_secant_stiffness"] = (
|
||||
"Computational_tangent"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,18 +17,19 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class DisplacementBasedBeamColumnSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Displacement-Based_Beam-Column',
|
||||
'x-book': 'Beam-Column_Elements',
|
||||
"x-gid-name": "Displacement-Based_Beam-Column",
|
||||
"x-book": "Beam-Column_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['dispBeamColumn'] = 'dispBeamColumn'
|
||||
compatible_sections: Literal['_'] = '_'
|
||||
number_of_integration_points: int = Field(3, description='number of integration points along the element')
|
||||
the_number_of_integration: Literal['_'] = '_'
|
||||
to_increase_analysis_accuracy: Literal['_'] = '_'
|
||||
section: str = 'Fiber'
|
||||
geometric_transformation: Literal['Linear', 'P-Delta', 'Corotational'] = 'Linear'
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["dispBeamColumn"] = "dispBeamColumn"
|
||||
compatible_sections: Literal["_"] = "_"
|
||||
number_of_integration_points: int = Field(
|
||||
3, description="number of integration points along the element"
|
||||
)
|
||||
the_number_of_integration: Literal["_"] = "_"
|
||||
to_increase_analysis_accuracy: Literal["_"] = "_"
|
||||
section: str = "Fiber"
|
||||
geometric_transformation: Literal["Linear", "P-Delta", "Corotational"] = "Linear"
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -23,187 +23,187 @@ class CyclicDataRow(BaseModel):
|
|||
class ElasticSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Strain',
|
||||
'actions': [
|
||||
"trigger": "Stress-Strain",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Deformation',
|
||||
'actions': [
|
||||
"trigger": "Force-Deformation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Moment-Rotation',
|
||||
'actions': [
|
||||
"trigger": "Moment-Rotation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'material_type',
|
||||
'gid_name': 'Material_type',
|
||||
'rules': [
|
||||
"field": "material_type",
|
||||
"gid_name": "Material_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Concrete',
|
||||
'actions': [
|
||||
"trigger": "Concrete",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Steel',
|
||||
'actions': [
|
||||
"trigger": "Steel",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -213,16 +213,32 @@ class ElasticSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Elastic'] = Field('Elastic', description='Elastic uniaxial material object')
|
||||
formulation: Literal['Stress-Strain', 'Force-Deformation', 'Moment-Rotation'] = 'Stress-Strain'
|
||||
material_type: Literal['Concrete', 'Steel', 'Custom'] = 'Custom'
|
||||
concrete_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105'] = 'C20/25'
|
||||
steel_grade: Literal['S235', 'S275', 'S355', 'S450', 'B500'] = 'S235'
|
||||
elastic_modulus_e: str = Field('30 GPa', description='Young modulus of elasticity E, considering stress-strain diagram') # TODO: unit-aware type
|
||||
stiffness_k: str = '4000 kN/m' # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = '10000 kNm' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
material: Literal["Elastic"] = Field("Elastic", description="Elastic uniaxial material object")
|
||||
formulation: Literal["Stress-Strain", "Force-Deformation", "Moment-Rotation"] = "Stress-Strain"
|
||||
material_type: Literal["Concrete", "Steel", "Custom"] = "Custom"
|
||||
concrete_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
] = "C20/25"
|
||||
steel_grade: Literal["S235", "S275", "S355", "S450", "B500"] = "S235"
|
||||
elastic_modulus_e: str = Field(
|
||||
"30 GPa", description="Young modulus of elasticity E, considering stress-strain diagram"
|
||||
) # TODO: unit-aware type
|
||||
stiffness_k: str = "4000 kN/m" # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = "10000 kNm" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -17,286 +17,286 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ElasticBeamColumnSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Beam-Column',
|
||||
'x-book': 'Beam-Column_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic_Beam-Column",
|
||||
"x-book": "Beam-Column_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'cross_section',
|
||||
'gid_name': 'Cross_section',
|
||||
'rules': [
|
||||
"field": "cross_section",
|
||||
"gid_name": "Cross_section",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Rectangular',
|
||||
'actions': [
|
||||
"trigger": "Rectangular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Circular',
|
||||
'actions': [
|
||||
"trigger": "Circular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Tee',
|
||||
'actions': [
|
||||
"trigger": "Tee",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'General',
|
||||
'actions': [
|
||||
"trigger": "General",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'set_modification_factors',
|
||||
'gid_name': 'Set_modification_factors',
|
||||
'rules': [
|
||||
"field": "set_modification_factors",
|
||||
"gid_name": "Set_modification_factors",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -306,25 +306,24 @@ class ElasticBeamColumnSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
element_type: Literal['ElasticBeamColumn'] = 'ElasticBeamColumn'
|
||||
compatible_materials: Literal['Elastic_Isotropic'] = 'Elastic_Isotropic'
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = 'Elastic_Isotropic'
|
||||
cross_section: Literal['Rectangular', 'Tee', 'Circular', 'General'] = 'Rectangular'
|
||||
height_h: str = '0.5m' # TODO: unit-aware type
|
||||
width_b: str = '0.3m' # TODO: unit-aware type
|
||||
diameter_d: str = '0.5m' # TODO: unit-aware type
|
||||
width_bf: str = '0.4m' # TODO: unit-aware type
|
||||
height_hf: str = '0.15m' # TODO: unit-aware type
|
||||
width_bw: str = '0.25m' # TODO: unit-aware type
|
||||
area_a: str = '1.0 m^2' # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_y_iyy: str = '0.5 m^4' # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_z_izz: str = '0.5 m^4' # TODO: unit-aware type
|
||||
torsional_moment_of_inertia_iyz: str = '1.0 m^4' # TODO: unit-aware type
|
||||
set_modification_factors: Literal['1', '0'] = '0'
|
||||
element_type: Literal["ElasticBeamColumn"] = "ElasticBeamColumn"
|
||||
compatible_materials: Literal["Elastic_Isotropic"] = "Elastic_Isotropic"
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = "Elastic_Isotropic"
|
||||
cross_section: Literal["Rectangular", "Tee", "Circular", "General"] = "Rectangular"
|
||||
height_h: str = "0.5m" # TODO: unit-aware type
|
||||
width_b: str = "0.3m" # TODO: unit-aware type
|
||||
diameter_d: str = "0.5m" # TODO: unit-aware type
|
||||
width_bf: str = "0.4m" # TODO: unit-aware type
|
||||
height_hf: str = "0.15m" # TODO: unit-aware type
|
||||
width_bw: str = "0.25m" # TODO: unit-aware type
|
||||
area_a: str = "1.0 m^2" # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_y_iyy: str = "0.5 m^4" # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_z_izz: str = "0.5 m^4" # TODO: unit-aware type
|
||||
torsional_moment_of_inertia_iyz: str = "1.0 m^4" # TODO: unit-aware type
|
||||
set_modification_factors: Literal["1", "0"] = "0"
|
||||
mod_a: int = 1
|
||||
mod_iyy: int = 1
|
||||
mod_izz: int = 1
|
||||
mod_iyz: int = 1
|
||||
geometric_transformation: Literal['Linear', 'P-Delta', 'Corotational'] = 'Linear'
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
geometric_transformation: Literal["Linear", "P-Delta", "Corotational"] = "Linear"
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,40 +17,40 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ElasticIsotropicSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Isotropic',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic_Isotropic",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'material_type',
|
||||
'gid_name': 'Material_type',
|
||||
'rules': [
|
||||
"field": "material_type",
|
||||
"gid_name": "Material_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Concrete',
|
||||
'actions': [
|
||||
"trigger": "Concrete",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Steel',
|
||||
'actions': [
|
||||
"trigger": "Steel",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -60,10 +60,24 @@ class ElasticIsotropicSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['ElasticIsotropic'] = 'ElasticIsotropic'
|
||||
material_type: Literal['Concrete', 'Steel', 'Custom'] = 'Custom'
|
||||
concrete_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105'] = 'C20/25'
|
||||
elastic_modulus_e: str = '30GPa' # TODO: unit-aware type
|
||||
material: Literal["ElasticIsotropic"] = "ElasticIsotropic"
|
||||
material_type: Literal["Concrete", "Steel", "Custom"] = "Custom"
|
||||
concrete_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
] = "C20/25"
|
||||
elastic_modulus_e: str = "30GPa" # TODO: unit-aware type
|
||||
poisson_s_ratio: float = 0.20
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,14 +17,13 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ElasticMembranePlateSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Membrane_Plate',
|
||||
'x-book': 'Section_Force-Deformation',
|
||||
"x-gid-name": "Elastic_Membrane_Plate",
|
||||
"x-book": "Section_Force-Deformation",
|
||||
}
|
||||
)
|
||||
|
||||
section: Literal['ElasticMembranePlate'] = 'ElasticMembranePlate'
|
||||
elastic_modulus_e: str = '28GPa' # TODO: unit-aware type
|
||||
section: Literal["ElasticMembranePlate"] = "ElasticMembranePlate"
|
||||
elastic_modulus_e: str = "28GPa" # TODO: unit-aware type
|
||||
poisson_s_ratio: float = 0.2
|
||||
section_depth_h: str = '0.25m' # TODO: unit-aware type
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
|
||||
section_depth_h: str = "0.25m" # TODO: unit-aware type
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,20 +17,19 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ElasticOrthotropicSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Orthotropic',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
"x-gid-name": "Elastic_Orthotropic",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['ElasticOrthotropic'] = 'ElasticOrthotropic'
|
||||
elastic_modulus_ex: str = '30GPa' # TODO: unit-aware type
|
||||
elastic_modulus_ey: str = '30GPa' # TODO: unit-aware type
|
||||
elastic_modulus_ez: str = '30GPa' # TODO: unit-aware type
|
||||
material: Literal["ElasticOrthotropic"] = "ElasticOrthotropic"
|
||||
elastic_modulus_ex: str = "30GPa" # TODO: unit-aware type
|
||||
elastic_modulus_ey: str = "30GPa" # TODO: unit-aware type
|
||||
elastic_modulus_ez: str = "30GPa" # TODO: unit-aware type
|
||||
poisson_s_ratio_vxy: float = 0.20
|
||||
poisson_s_ratio_vyz: float = 0.20
|
||||
poisson_s_ratio_vzx: float = 0.20
|
||||
shear_modulus_gxy: str = '11GPa' # TODO: unit-aware type
|
||||
shear_modulus_gyz: str = '11GPa' # TODO: unit-aware type
|
||||
shear_modulus_gzx: str = '11GPa' # TODO: unit-aware type
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
|
||||
shear_modulus_gxy: str = "11GPa" # TODO: unit-aware type
|
||||
shear_modulus_gyz: str = "11GPa" # TODO: unit-aware type
|
||||
shear_modulus_gzx: str = "11GPa" # TODO: unit-aware type
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -23,332 +23,332 @@ class CyclicDataRow(BaseModel):
|
|||
class ElasticPerfectlyPlasticSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Perfectly_Plastic',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic_Perfectly_Plastic",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Strain',
|
||||
'actions': [
|
||||
"trigger": "Stress-Strain",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Deformation_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Deformation_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Deformation_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Deformation_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_strain_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_strain_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_deformation_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_deformation_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Rotation_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Rotation_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Rotation_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Rotation_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_rotation_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_rotation_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Deformation',
|
||||
'actions': [
|
||||
"trigger": "Force-Deformation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Deformation_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Deformation_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Deformation_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Deformation_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strain_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strain_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strain_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strain_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_strain_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_strain_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_deformation_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_deformation_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Rotation_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Rotation_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Rotation_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Rotation_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_rotation_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_rotation_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Moment-Rotation',
|
||||
'actions': [
|
||||
"trigger": "Moment-Rotation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Deformation_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Deformation_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Deformation_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Deformation_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strain_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strain_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strain_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strain_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_strain_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_strain_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_deformation_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_deformation_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rotation_epsP',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rotation_epsP",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rotation_epsN',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rotation_epsN",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_rotation_eps0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_rotation_eps0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'material_type',
|
||||
'gid_name': 'Material_type',
|
||||
'rules': [
|
||||
"field": "material_type",
|
||||
"gid_name": "Material_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Concrete',
|
||||
'actions': [
|
||||
"trigger": "Concrete",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Steel',
|
||||
'actions': [
|
||||
"trigger": "Steel",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -358,26 +358,50 @@ class ElasticPerfectlyPlasticSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['ElasticPerfectlyPlastic'] = Field('ElasticPerfectlyPlastic', description='elastic perfectly-plastic uniaxial material object')
|
||||
formulation: Literal['Stress-Strain', 'Force-Deformation', 'Moment-Rotation'] = 'Stress-Strain'
|
||||
material_type: Literal['Concrete', 'Steel', 'Custom'] = 'Custom'
|
||||
concrete_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105'] = 'C20/25'
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
steel_grade: Literal['S235', 'S275', 'S355', 'S450', 'B500'] = 'B500'
|
||||
elastic_modulus_e: str = Field('20GPa', description='young modulus of elasticity E') # TODO: unit-aware type
|
||||
stiffness_k: str = '4000 kN/m' # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = '10000 kNm' # TODO: unit-aware type
|
||||
strain_epsp: float = Field(1.10e-004, description='strain or deformation at which material reaches plastic state in tension')
|
||||
strain_epsn: float = Field(-2.0e-3, description='strain or deformation at which material reaches plastic state in compression')
|
||||
deformation_epsp: str = '1m' # TODO: unit-aware type
|
||||
deformation_epsn: str = '-1m' # TODO: unit-aware type
|
||||
rotation_epsp: str = '0.5 rad' # TODO: unit-aware type
|
||||
rotation_epsn: str = '-0.5 rad' # TODO: unit-aware type
|
||||
material: Literal["ElasticPerfectlyPlastic"] = Field(
|
||||
"ElasticPerfectlyPlastic", description="elastic perfectly-plastic uniaxial material object"
|
||||
)
|
||||
formulation: Literal["Stress-Strain", "Force-Deformation", "Moment-Rotation"] = "Stress-Strain"
|
||||
material_type: Literal["Concrete", "Steel", "Custom"] = "Custom"
|
||||
concrete_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
] = "C20/25"
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
steel_grade: Literal["S235", "S275", "S355", "S450", "B500"] = "B500"
|
||||
elastic_modulus_e: str = Field(
|
||||
"20GPa", description="young modulus of elasticity E"
|
||||
) # TODO: unit-aware type
|
||||
stiffness_k: str = "4000 kN/m" # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = "10000 kNm" # TODO: unit-aware type
|
||||
strain_epsp: float = Field(
|
||||
1.10e-004,
|
||||
description="strain or deformation at which material reaches plastic state in tension",
|
||||
)
|
||||
strain_epsn: float = Field(
|
||||
-2.0e-3,
|
||||
description="strain or deformation at which material reaches plastic state in compression",
|
||||
)
|
||||
deformation_epsp: str = "1m" # TODO: unit-aware type
|
||||
deformation_epsn: str = "-1m" # TODO: unit-aware type
|
||||
rotation_epsp: str = "0.5 rad" # TODO: unit-aware type
|
||||
rotation_epsn: str = "-0.5 rad" # TODO: unit-aware type
|
||||
initial_strain_eps0: float = 0.0
|
||||
initial_deformation_eps0: str = '0.0m' # TODO: unit-aware type
|
||||
initial_rotation_eps0: str = '0.0 rad' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
initial_deformation_eps0: str = "0.0m" # TODO: unit-aware type
|
||||
initial_rotation_eps0: str = "0.0 rad" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,307 +23,307 @@ class CyclicDataRow(BaseModel):
|
|||
class ElasticPerfectlyPlasticWithGapSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Perfectly_Plastic_with_Gap',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic_Perfectly_Plastic_with_Gap",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Strain',
|
||||
'actions': [
|
||||
"trigger": "Stress-Strain",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strain_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strain_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Deformation_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Deformation_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Rotation_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Rotation_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Deformation',
|
||||
'actions': [
|
||||
"trigger": "Force-Deformation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strain_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strain_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Deformation_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Deformation_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Rotation_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Rotation_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Moment-Rotation',
|
||||
'actions': [
|
||||
"trigger": "Moment-Rotation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Elastic_modulus_E',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Elastic_modulus_E",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strain_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strain_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Deformation_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Deformation_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Rotation_gap',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Rotation_gap",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'material_type',
|
||||
'gid_name': 'Material_type',
|
||||
'rules': [
|
||||
"field": "material_type",
|
||||
"gid_name": "Material_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Concrete',
|
||||
'actions': [
|
||||
"trigger": "Concrete",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Steel',
|
||||
'actions': [
|
||||
"trigger": "Steel",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Custom',
|
||||
'actions': [
|
||||
"trigger": "Custom",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Concrete_class',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Concrete_class",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Strength_type',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Strength_type",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -333,23 +333,45 @@ class ElasticPerfectlyPlasticWithGapSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['ElasticPerfectlyPlasticwithGap'] = Field('ElasticPerfectlyPlasticwithGap', description='elastic perfectly-plastic gap uniaxial material object')
|
||||
formulation: Literal['Stress-Strain', 'Force-Deformation', 'Moment-Rotation'] = 'Stress-Strain'
|
||||
material_type: Literal['Concrete', 'Steel', 'Custom'] = 'Custom'
|
||||
concrete_class: Literal['C12/15', 'C16/20', 'C20/25', 'C25/30', 'C30/37', 'C35/45', 'C40/50', 'C45/55', 'C50/60', 'C55/67', 'C60/75', 'C70/85', 'C80/95', 'C90/105'] = 'C20/25'
|
||||
strength_type: Literal['Mean', 'Characteristic'] = 'Characteristic'
|
||||
steel_grade: Literal['S235', 'S275', 'S355', 'S450', 'B500'] = 'B500'
|
||||
elastic_modulus_e: str = Field('20GPa', description='young modulus of elasticity E') # TODO: unit-aware type
|
||||
stiffness_k: str = '4000 kN/m' # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = '10000 kNm' # TODO: unit-aware type
|
||||
yield_stress_fy: str = '-20MPa' # TODO: unit-aware type
|
||||
force_fy: str = Field('1000 kN', description='Yield stress at which material reaches the plastic plate. Negative value for compression.') # TODO: unit-aware type
|
||||
moment_my: str = '150 kNm' # TODO: unit-aware type
|
||||
material: Literal["ElasticPerfectlyPlasticwithGap"] = Field(
|
||||
"ElasticPerfectlyPlasticwithGap",
|
||||
description="elastic perfectly-plastic gap uniaxial material object",
|
||||
)
|
||||
formulation: Literal["Stress-Strain", "Force-Deformation", "Moment-Rotation"] = "Stress-Strain"
|
||||
material_type: Literal["Concrete", "Steel", "Custom"] = "Custom"
|
||||
concrete_class: Literal[
|
||||
"C12/15",
|
||||
"C16/20",
|
||||
"C20/25",
|
||||
"C25/30",
|
||||
"C30/37",
|
||||
"C35/45",
|
||||
"C40/50",
|
||||
"C45/55",
|
||||
"C50/60",
|
||||
"C55/67",
|
||||
"C60/75",
|
||||
"C70/85",
|
||||
"C80/95",
|
||||
"C90/105",
|
||||
] = "C20/25"
|
||||
strength_type: Literal["Mean", "Characteristic"] = "Characteristic"
|
||||
steel_grade: Literal["S235", "S275", "S355", "S450", "B500"] = "B500"
|
||||
elastic_modulus_e: str = Field(
|
||||
"20GPa", description="young modulus of elasticity E"
|
||||
) # TODO: unit-aware type
|
||||
stiffness_k: str = "4000 kN/m" # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = "10000 kNm" # TODO: unit-aware type
|
||||
yield_stress_fy: str = "-20MPa" # TODO: unit-aware type
|
||||
force_fy: str = Field(
|
||||
"1000 kN",
|
||||
description="Yield stress at which material reaches the plastic plate. Negative value for compression.",
|
||||
) # TODO: unit-aware type
|
||||
moment_my: str = "150 kNm" # TODO: unit-aware type
|
||||
strain_gap: float = 0.0
|
||||
deformation_gap: str = '0.0m' # TODO: unit-aware type
|
||||
rotation_gap: str = '0.0 rad' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
deformation_gap: str = "0.0m" # TODO: unit-aware type
|
||||
rotation_gap: str = "0.0 rad" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -17,332 +17,332 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ElasticSectionSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Section',
|
||||
'x-book': 'Section_Force-Deformation',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic_Section",
|
||||
"x-book": "Section_Force-Deformation",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'calculate_shear_modulus_update_to_apply_cb_0_1',
|
||||
'gid_name': 'Calculate_Shear_modulus_(update_to_apply)#CB#(0,1)',
|
||||
'rules': [
|
||||
"field": "calculate_shear_modulus_update_to_apply_cb_0_1",
|
||||
"gid_name": "Calculate_Shear_modulus_(update_to_apply)#CB#(0,1)",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': "Poisson's_ratio",
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Poisson's_ratio",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': "Poisson's_ratio",
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Poisson's_ratio",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'cross_section',
|
||||
'gid_name': 'Cross_section',
|
||||
'rules': [
|
||||
"field": "cross_section",
|
||||
"gid_name": "Cross_section",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Rectangular',
|
||||
'actions': [
|
||||
"trigger": "Rectangular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Circular',
|
||||
'actions': [
|
||||
"trigger": "Circular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Tee',
|
||||
'actions': [
|
||||
"trigger": "Tee",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'General',
|
||||
'actions': [
|
||||
"trigger": "General",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'set_modification_factors',
|
||||
'gid_name': 'Set_modification_factors',
|
||||
'rules': [
|
||||
"field": "set_modification_factors",
|
||||
"gid_name": "Set_modification_factors",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Sy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Sy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Sz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Sz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Sy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Sy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Sz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Sz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -352,26 +352,25 @@ class ElasticSectionSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
section: Literal['ElasticSection'] = 'ElasticSection'
|
||||
elastic_modulus_e: str = '28 GPa' # TODO: unit-aware type
|
||||
section: Literal["ElasticSection"] = "ElasticSection"
|
||||
elastic_modulus_e: str = "28 GPa" # TODO: unit-aware type
|
||||
calculate_shear_modulus_update_to_apply_cb_0_1: int = 0
|
||||
shear_modulus_g: str = '11.66666667 GPa' # TODO: unit-aware type
|
||||
cross_section: Literal['Rectangular', 'Tee', 'Circular', 'General'] = 'Rectangular'
|
||||
height_h: str = '0.5m' # TODO: unit-aware type
|
||||
width_b: str = '0.3m' # TODO: unit-aware type
|
||||
diameter_d: str = '0.5m' # TODO: unit-aware type
|
||||
width_bf: str = '0.4m' # TODO: unit-aware type
|
||||
height_hf: str = '0.15m' # TODO: unit-aware type
|
||||
width_bw: str = '0.25m' # TODO: unit-aware type
|
||||
area_a: str = '1.0 m^2' # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_y_iyy: str = '0.5 m^4' # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_z_izz: str = '0.5 m^4' # TODO: unit-aware type
|
||||
torsional_moment_of_inertia_iyz: str = '1.0 m^4' # TODO: unit-aware type
|
||||
set_modification_factors: Literal['1', '0'] = '0'
|
||||
shear_modulus_g: str = "11.66666667 GPa" # TODO: unit-aware type
|
||||
cross_section: Literal["Rectangular", "Tee", "Circular", "General"] = "Rectangular"
|
||||
height_h: str = "0.5m" # TODO: unit-aware type
|
||||
width_b: str = "0.3m" # TODO: unit-aware type
|
||||
diameter_d: str = "0.5m" # TODO: unit-aware type
|
||||
width_bf: str = "0.4m" # TODO: unit-aware type
|
||||
height_hf: str = "0.15m" # TODO: unit-aware type
|
||||
width_bw: str = "0.25m" # TODO: unit-aware type
|
||||
area_a: str = "1.0 m^2" # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_y_iyy: str = "0.5 m^4" # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_z_izz: str = "0.5 m^4" # TODO: unit-aware type
|
||||
torsional_moment_of_inertia_iyz: str = "1.0 m^4" # TODO: unit-aware type
|
||||
set_modification_factors: Literal["1", "0"] = "0"
|
||||
mod_a: int = 1
|
||||
mod_sy: int = 1
|
||||
mod_sz: int = 1
|
||||
mod_iyy: int = 1
|
||||
mod_izz: int = 1
|
||||
mod_iyz: int = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -17,306 +17,306 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ElasticTimoshenkoBeamColumnSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Elastic_Timoshenko_Beam-Column',
|
||||
'x-book': 'Beam-Column_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Elastic_Timoshenko_Beam-Column",
|
||||
"x-book": "Beam-Column_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'cross_section',
|
||||
'gid_name': 'Cross_section',
|
||||
'rules': [
|
||||
"field": "cross_section",
|
||||
"gid_name": "Cross_section",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Rectangular',
|
||||
'actions': [
|
||||
"trigger": "Rectangular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Circular',
|
||||
'actions': [
|
||||
"trigger": "Circular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Tee',
|
||||
'actions': [
|
||||
"trigger": "Tee",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'General',
|
||||
'actions': [
|
||||
"trigger": "General",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_of_inertia_about_local-y_Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_of_inertia_about_local-y_Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_of_inertia_about_local-z_Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_of_inertia_about_local-z_Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Torsional_moment_of_inertia_Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Torsional_moment_of_inertia_Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'set_modification_factors',
|
||||
'gid_name': 'Set_modification_factors',
|
||||
'rules': [
|
||||
"field": "set_modification_factors",
|
||||
"gid_name": "Set_modification_factors",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Sy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Sy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Sz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Sz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Sy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Sy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Sz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Sz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Iyy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Iyy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Izz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Izz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._Iyz',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._Iyz",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -326,27 +326,33 @@ class ElasticTimoshenkoBeamColumnSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
element_type: Literal['ElasticTimoshenkoBeamColumn'] = Field('ElasticTimoshenkoBeamColumn', description='A Timoshenko beam is a frame member that accounts for shear deformations.')
|
||||
compatible_materials: Literal['Elastic_Isotropic'] = 'Elastic_Isotropic'
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = 'Elastic_Isotropic'
|
||||
cross_section: Literal['Rectangular', 'Tee', 'Circular', 'General'] = 'Rectangular'
|
||||
height_h: str = '0.5m' # TODO: unit-aware type
|
||||
width_b: str = '0.3m' # TODO: unit-aware type
|
||||
diameter_d: str = '0.5m' # TODO: unit-aware type
|
||||
width_bf: str = '0.4m' # TODO: unit-aware type
|
||||
height_hf: str = '0.15m' # TODO: unit-aware type
|
||||
width_bw: str = '0.25m' # TODO: unit-aware type
|
||||
area_a: str = '1.0 m^2' # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_y_iyy: str = '0.5 m^4' # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_z_izz: str = '0.5 m^4' # TODO: unit-aware type
|
||||
torsional_moment_of_inertia_iyz: str = '1.0 m^4' # TODO: unit-aware type
|
||||
set_modification_factors: Literal['1', '0'] = '0'
|
||||
element_type: Literal["ElasticTimoshenkoBeamColumn"] = Field(
|
||||
"ElasticTimoshenkoBeamColumn",
|
||||
description="A Timoshenko beam is a frame member that accounts for shear deformations.",
|
||||
)
|
||||
compatible_materials: Literal["Elastic_Isotropic"] = "Elastic_Isotropic"
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = "Elastic_Isotropic"
|
||||
cross_section: Literal["Rectangular", "Tee", "Circular", "General"] = "Rectangular"
|
||||
height_h: str = "0.5m" # TODO: unit-aware type
|
||||
width_b: str = "0.3m" # TODO: unit-aware type
|
||||
diameter_d: str = "0.5m" # TODO: unit-aware type
|
||||
width_bf: str = "0.4m" # TODO: unit-aware type
|
||||
height_hf: str = "0.15m" # TODO: unit-aware type
|
||||
width_bw: str = "0.25m" # TODO: unit-aware type
|
||||
area_a: str = "1.0 m^2" # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_y_iyy: str = "0.5 m^4" # TODO: unit-aware type
|
||||
moment_of_inertia_about_local_z_izz: str = "0.5 m^4" # TODO: unit-aware type
|
||||
torsional_moment_of_inertia_iyz: str = "1.0 m^4" # TODO: unit-aware type
|
||||
set_modification_factors: Literal["1", "0"] = "0"
|
||||
mod_a: int = 1
|
||||
mod_sy: int = Field(1, description='This value will be multiplied by the Area (A) for local-y Shear Area (Sy)')
|
||||
mod_sz: int = Field(1, description='This value will be multiplied by the Area (A) for local-z Shear Area (Sz)')
|
||||
mod_sy: int = Field(
|
||||
1, description="This value will be multiplied by the Area (A) for local-y Shear Area (Sy)"
|
||||
)
|
||||
mod_sz: int = Field(
|
||||
1, description="This value will be multiplied by the Area (A) for local-z Shear Area (Sz)"
|
||||
)
|
||||
mod_iyy: int = 1
|
||||
mod_izz: int = 1
|
||||
mod_iyz: int = 1
|
||||
geometric_transformation: Literal['Linear', 'P-Delta', 'Corotational'] = 'Linear'
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
geometric_transformation: Literal["Linear", "P-Delta", "Corotational"] = "Linear"
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -17,30 +17,30 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class FiberCustomSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Fiber_Custom',
|
||||
'x-book': 'Section_Force-Deformation',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Fiber_Custom",
|
||||
"x-book": "Section_Force-Deformation",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_torsional_stiffness',
|
||||
'gid_name': 'Activate_torsional_stiffness',
|
||||
'rules': [
|
||||
"field": "activate_torsional_stiffness",
|
||||
"gid_name": "Activate_torsional_stiffness",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Torsional_stiffness_GJ',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Torsional_stiffness_GJ",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Torsional_stiffness_GJ',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Torsional_stiffness_GJ",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -50,18 +50,17 @@ class FiberCustomSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
section: Literal['FiberCustom'] = 'FiberCustom'
|
||||
cross_section_area: str = '0.0 m^2' # TODO: unit-aware type
|
||||
activate_torsional_stiffness: Literal['1', '0'] = '0'
|
||||
torsional_stiffness_gj: str = '10000 kNm^2' # TODO: unit-aware type
|
||||
region_1_material: str = 'Concrete01_(Zero_tensile_strength)'
|
||||
region_2_material: str = 'Concrete01_(Zero_tensile_strength)'
|
||||
region_3_material: str = 'Steel02'
|
||||
region_4_material: str = 'Steel02'
|
||||
region_5_material: str = 'Steel02'
|
||||
region_6_material: str = 'Steel02'
|
||||
region_7_material: str = 'Steel02'
|
||||
region_8_material: str = 'Steel02'
|
||||
region_9_material: str = 'Steel02'
|
||||
region_10_material: str = 'Steel02'
|
||||
|
||||
section: Literal["FiberCustom"] = "FiberCustom"
|
||||
cross_section_area: str = "0.0 m^2" # TODO: unit-aware type
|
||||
activate_torsional_stiffness: Literal["1", "0"] = "0"
|
||||
torsional_stiffness_gj: str = "10000 kNm^2" # TODO: unit-aware type
|
||||
region_1_material: str = "Concrete01_(Zero_tensile_strength)"
|
||||
region_2_material: str = "Concrete01_(Zero_tensile_strength)"
|
||||
region_3_material: str = "Steel02"
|
||||
region_4_material: str = "Steel02"
|
||||
region_5_material: str = "Steel02"
|
||||
region_6_material: str = "Steel02"
|
||||
region_7_material: str = "Steel02"
|
||||
region_8_material: str = "Steel02"
|
||||
region_9_material: str = "Steel02"
|
||||
region_10_material: str = "Steel02"
|
||||
|
|
|
|||
|
|
@ -17,33 +17,32 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class FiberintSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'FiberInt',
|
||||
'x-book': 'Section_Force-Deformation',
|
||||
"x-gid-name": "FiberInt",
|
||||
"x-book": "Section_Force-Deformation",
|
||||
}
|
||||
)
|
||||
|
||||
section: Literal['FiberInt'] = 'FiberInt'
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
section: Literal["FiberInt"] = "FiberInt"
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
left_subsection_y_direction_cb: str = ""
|
||||
thickness: str = '0.5 m' # TODO: unit-aware type
|
||||
width: str = '0.5 m' # TODO: unit-aware type
|
||||
cover: str = '0.05 m' # TODO: unit-aware type
|
||||
thickness: str = "0.5 m" # TODO: unit-aware type
|
||||
width: str = "0.5 m" # TODO: unit-aware type
|
||||
cover: str = "0.05 m" # TODO: unit-aware type
|
||||
strips: int = 2
|
||||
steel_area: str = '16.08 m^2' # TODO: unit-aware type
|
||||
middle_subsection: Literal['_'] = '_'
|
||||
thickness_1: str = '0.25 m' # TODO: unit-aware type
|
||||
width_1: str = '2 m' # TODO: unit-aware type
|
||||
steel_area: str = "16.08 m^2" # TODO: unit-aware type
|
||||
middle_subsection: Literal["_"] = "_"
|
||||
thickness_1: str = "0.25 m" # TODO: unit-aware type
|
||||
width_1: str = "2 m" # TODO: unit-aware type
|
||||
strips_1: int = 4
|
||||
steel_area_1: str = '10.05 m^2' # TODO: unit-aware type
|
||||
steel_area_1: str = "10.05 m^2" # TODO: unit-aware type
|
||||
right_subsection_y_direction_cb: str = ""
|
||||
thickness_2: str = '0.5 m' # TODO: unit-aware type
|
||||
width_2: str = '0.5 m' # TODO: unit-aware type
|
||||
cover_1: str = '0.05 m' # TODO: unit-aware type
|
||||
thickness_2: str = "0.5 m" # TODO: unit-aware type
|
||||
width_2: str = "0.5 m" # TODO: unit-aware type
|
||||
cover_1: str = "0.05 m" # TODO: unit-aware type
|
||||
strips_2: int = 2
|
||||
steel_area_2: str = '16.08 m^2' # TODO: unit-aware type
|
||||
horizontal_reinforcement: Literal['_'] = '_'
|
||||
steel_area_3: str = '10 m^2' # TODO: unit-aware type
|
||||
core_material: str = 'Concrete01_(Zero_tensile_strength)'
|
||||
cover_material: str = 'Concrete01_(Zero_tensile_strength)'
|
||||
reinforcing_bar_material: str = 'Steel01'
|
||||
|
||||
steel_area_2: str = "16.08 m^2" # TODO: unit-aware type
|
||||
horizontal_reinforcement: Literal["_"] = "_"
|
||||
steel_area_3: str = "10 m^2" # TODO: unit-aware type
|
||||
core_material: str = "Concrete01_(Zero_tensile_strength)"
|
||||
cover_material: str = "Concrete01_(Zero_tensile_strength)"
|
||||
reinforcing_bar_material: str = "Steel01"
|
||||
|
|
|
|||
|
|
@ -17,19 +17,20 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class FlexureShearInteractionDisplacementBasedBeamColumnSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Flexure-Shear_Interaction_Displacement-Based_Beam-Column',
|
||||
'x-book': 'Beam-Column_Elements',
|
||||
"x-gid-name": "Flexure-Shear_Interaction_Displacement-Based_Beam-Column",
|
||||
"x-book": "Beam-Column_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['dispBeamColumnInt'] = 'dispBeamColumnInt'
|
||||
compatible_sections: Literal['_'] = '_'
|
||||
number_of_integration_points: Literal['3'] = Field('3', description='number of integration points along the element')
|
||||
the_number_of_integration: Literal['_'] = '_'
|
||||
to_increase_analysis_accuracy: Literal['_'] = '_'
|
||||
section: str = 'FiberInt'
|
||||
element_type: Literal["dispBeamColumnInt"] = "dispBeamColumnInt"
|
||||
compatible_sections: Literal["_"] = "_"
|
||||
number_of_integration_points: Literal["3"] = Field(
|
||||
"3", description="number of integration points along the element"
|
||||
)
|
||||
the_number_of_integration: Literal["_"] = "_"
|
||||
to_increase_analysis_accuracy: Literal["_"] = "_"
|
||||
section: str = "FiberInt"
|
||||
fraction_of_the_height_from_bottom_to_the_rotation_center: float = 0.4
|
||||
geometric_transformation: Literal['LinearInt'] = 'LinearInt'
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
geometric_transformation: Literal["LinearInt"] = "LinearInt"
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,40 +17,40 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ForceBasedBeamColumnSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Force-Based_Beam-Column',
|
||||
'x-book': 'Beam-Column_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Force-Based_Beam-Column",
|
||||
"x-book": "Beam-Column_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_iterative_scheme_for_satisfying_element_compatibility',
|
||||
'gid_name': 'Activate_iterative_scheme_for_satisfying_element_compatibility',
|
||||
'rules': [
|
||||
"field": "activate_iterative_scheme_for_satisfying_element_compatibility",
|
||||
"gid_name": "Activate_iterative_scheme_for_satisfying_element_compatibility",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Maximum_Iterations',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Maximum_Iterations",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Tolerance',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Tolerance",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_Iterations',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_Iterations",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Tolerance',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Tolerance",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -60,17 +60,22 @@ class ForceBasedBeamColumnSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
element_type: Literal['forceBeamColumn'] = 'forceBeamColumn'
|
||||
compatible_sections: Literal['_'] = '_'
|
||||
integration_type: Literal['Lobatto'] = 'Lobatto'
|
||||
number_of_integration_points: int = Field(3, description='number of Gauss-Lobatto integration points along the element')
|
||||
the_number_of_integration: Literal['_'] = '_'
|
||||
to_increase_analysis_accuracy: Literal['_'] = '_'
|
||||
section: str = 'Fiber'
|
||||
geometric_transformation: Literal['Linear', 'P-Delta', 'Corotational'] = 'Linear'
|
||||
activate_iterative_scheme_for_satisfying_element_compatibility: Literal['1', '0'] = '1'
|
||||
maximum_iterations: int = Field(10, description='maximum number of iterations to undertake to satisfy element compatibility')
|
||||
tolerance: float = Field(1.0e-6, description='tolerance for satisfaction of element compatibility')
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["forceBeamColumn"] = "forceBeamColumn"
|
||||
compatible_sections: Literal["_"] = "_"
|
||||
integration_type: Literal["Lobatto"] = "Lobatto"
|
||||
number_of_integration_points: int = Field(
|
||||
3, description="number of Gauss-Lobatto integration points along the element"
|
||||
)
|
||||
the_number_of_integration: Literal["_"] = "_"
|
||||
to_increase_analysis_accuracy: Literal["_"] = "_"
|
||||
section: str = "Fiber"
|
||||
geometric_transformation: Literal["Linear", "P-Delta", "Corotational"] = "Linear"
|
||||
activate_iterative_scheme_for_satisfying_element_compatibility: Literal["1", "0"] = "1"
|
||||
maximum_iterations: int = Field(
|
||||
10, description="maximum number of iterations to undertake to satisfy element compatibility"
|
||||
)
|
||||
tolerance: float = Field(
|
||||
1.0e-6, description="tolerance for satisfaction of element compatibility"
|
||||
)
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,85 +17,85 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class GroundMotionRecordSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Ground_Motion_Record',
|
||||
'x-book': 'Records',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Ground_Motion_Record",
|
||||
"x-book": "Records",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'record_file_format',
|
||||
'gid_name': 'Record_file_format',
|
||||
'rules': [
|
||||
"field": "record_file_format",
|
||||
"gid_name": "Record_file_format",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'PEER_format',
|
||||
'actions': [
|
||||
"trigger": "PEER_format",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Lines_to_skip',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Lines_to_skip",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Time_step',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Time_step",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Time_column',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Time_column",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Value_column',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Value_column",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Single_value_per_line',
|
||||
'actions': [
|
||||
"trigger": "Single_value_per_line",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Time_column',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Time_column",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Value_column',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Value_column",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Lines_to_skip',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Lines_to_skip",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Time_step',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Time_step",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Time_and_value_per_line',
|
||||
'actions': [
|
||||
"trigger": "Time_and_value_per_line",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Lines_to_skip',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Lines_to_skip",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Time_step',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Time_step",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Time_column',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Time_column",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Value_column',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Value_column",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -106,11 +106,12 @@ class GroundMotionRecordSpec(BaseModel):
|
|||
)
|
||||
|
||||
record_file: str = ""
|
||||
record_type: Literal['Acceleration', 'Displacement', 'Velocity', 'Function'] = 'Acceleration'
|
||||
record_file_format: Literal['PEER_format', 'Single_value_per_line', 'Time_and_value_per_line'] = 'Time_and_value_per_line'
|
||||
record_type: Literal["Acceleration", "Displacement", "Velocity", "Function"] = "Acceleration"
|
||||
record_file_format: Literal[
|
||||
"PEER_format", "Single_value_per_line", "Time_and_value_per_line"
|
||||
] = "Time_and_value_per_line"
|
||||
lines_to_skip: int = 1
|
||||
time_step: float = 0.005
|
||||
time_column: Literal['1', '2', '3', '4'] = '1'
|
||||
value_column: Literal['1', '2', '3', '4'] = '2'
|
||||
time_column: Literal["1", "2", "3", "4"] = "1"
|
||||
value_column: Literal["1", "2", "3", "4"] = "2"
|
||||
scale_factor: float = 9.81
|
||||
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class HyperbolicGapSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Hyperbolic_Gap',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Hyperbolic_Gap",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,12 +56,11 @@ class HyperbolicGapSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
initial_stiffness: str = '20300 kN/m' # TODO: unit-aware type
|
||||
unloading_reloading_stiffness: str = '20300 kN/m' # TODO: unit-aware type
|
||||
material: Literal["_"] = "_"
|
||||
initial_stiffness: str = "20300 kN/m" # TODO: unit-aware type
|
||||
unloading_reloading_stiffness: str = "20300 kN/m" # TODO: unit-aware type
|
||||
failure_ratio: float = 0.7
|
||||
ultimate_passive_resistance: str = '-326 kN' # TODO: unit-aware type
|
||||
initial_gap: str = '-2.54 cm' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
ultimate_passive_resistance: str = "-326 kN" # TODO: unit-aware type
|
||||
initial_gap: str = "-2.54 cm" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -17,12 +17,11 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class InitialStrainSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Initial_Strain',
|
||||
'x-book': 'Combined_Materials',
|
||||
"x-gid-name": "Initial_Strain",
|
||||
"x-book": "Combined_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
material_for_defining_initial_strain: str = 'Elastic'
|
||||
material: Literal["_"] = "_"
|
||||
material_for_defining_initial_strain: str = "Elastic"
|
||||
initial_strain: float = 0.0004
|
||||
|
||||
|
|
|
|||
|
|
@ -17,12 +17,11 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class InitialStressSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Initial_Stress',
|
||||
'x-book': 'Combined_Materials',
|
||||
"x-gid-name": "Initial_Stress",
|
||||
"x-book": "Combined_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
material_for_defining_initial_stress: str = 'Elastic'
|
||||
initial_stress: str = '-10 MPa' # TODO: unit-aware type
|
||||
|
||||
material: Literal["_"] = "_"
|
||||
material_for_defining_initial_stress: str = "Elastic"
|
||||
initial_stress: str = "-10 MPa" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,16 +17,15 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class J2plasticitySpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'J2Plasticity',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
"x-gid-name": "J2Plasticity",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['J2Plasticity'] = 'J2Plasticity'
|
||||
bulk_modulus: str = '300MPa' # TODO: unit-aware type
|
||||
shear_modulus: str = '60MPa' # TODO: unit-aware type
|
||||
initial_yield_stress: str = '0.0kPa' # TODO: unit-aware type
|
||||
final_saturation_yield_stress: str = '10kPa' # TODO: unit-aware type
|
||||
material: Literal["J2Plasticity"] = "J2Plasticity"
|
||||
bulk_modulus: str = "300MPa" # TODO: unit-aware type
|
||||
shear_modulus: str = "60MPa" # TODO: unit-aware type
|
||||
initial_yield_stress: str = "0.0kPa" # TODO: unit-aware type
|
||||
final_saturation_yield_stress: str = "10kPa" # TODO: unit-aware type
|
||||
exp_hardening_parameter_delta: float = 1.0
|
||||
linear_hardening_parameter: float = 1.0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,41 +17,40 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class LayeredshellSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'LayeredShell',
|
||||
'x-book': 'Section_Force-Deformation',
|
||||
"x-gid-name": "LayeredShell",
|
||||
"x-book": "Section_Force-Deformation",
|
||||
}
|
||||
)
|
||||
|
||||
section: Literal['LayeredShell'] = 'LayeredShell'
|
||||
wall_width: str = '0.25 m' # TODO: unit-aware type
|
||||
reinforcement_cover: str = '5 cm' # TODO: unit-aware type
|
||||
section: Literal["LayeredShell"] = "LayeredShell"
|
||||
wall_width: str = "0.25 m" # TODO: unit-aware type
|
||||
reinforcement_cover: str = "5 cm" # TODO: unit-aware type
|
||||
longitudinal_bars: int = 2
|
||||
longitudinal_bar_diameter: str = '16 mm' # TODO: unit-aware type
|
||||
longitudinal_reinforcement_spacing: str = '100 mm' # TODO: unit-aware type
|
||||
longitudinal_bar_diameter: str = "16 mm" # TODO: unit-aware type
|
||||
longitudinal_reinforcement_spacing: str = "100 mm" # TODO: unit-aware type
|
||||
transverse_bars: int = 2
|
||||
transverse_bar_diameter: str = '8 mm' # TODO: unit-aware type
|
||||
transverse_reinforcement_spacing: str = '100 mm' # TODO: unit-aware type
|
||||
transverse_bar_diameter: str = "8 mm" # TODO: unit-aware type
|
||||
transverse_reinforcement_spacing: str = "100 mm" # TODO: unit-aware type
|
||||
calculate_reinforcement_ratios_update_to_apply_cb_0_1: int = 1
|
||||
longitudinal_reinforcement_ratio: float = 1.608e-02
|
||||
transverse_reinforcement_ratio: float = 4.021e-03
|
||||
cover_layers: int = 1
|
||||
core_layers: int = 4
|
||||
cover_fc: str = Field('20 MPa', description='positive value') # TODO: unit-aware type
|
||||
cover_ft: str = Field('2.2 MPa', description='positive value') # TODO: unit-aware type
|
||||
cover_fu: str = Field('-17.0 MPa', description='negative value') # TODO: unit-aware type
|
||||
cover_ec: float = Field(-2.0e-3, description='negative value')
|
||||
cover_ecu: float = Field(-3.5e-3, description='negative value')
|
||||
cover_etu: float = Field(1.0e-3, description='positive value')
|
||||
cover_fc: str = Field("20 MPa", description="positive value") # TODO: unit-aware type
|
||||
cover_ft: str = Field("2.2 MPa", description="positive value") # TODO: unit-aware type
|
||||
cover_fu: str = Field("-17.0 MPa", description="negative value") # TODO: unit-aware type
|
||||
cover_ec: float = Field(-2.0e-3, description="negative value")
|
||||
cover_ecu: float = Field(-3.5e-3, description="negative value")
|
||||
cover_etu: float = Field(1.0e-3, description="positive value")
|
||||
cover_shear_ret_factor: float = 0.1
|
||||
cover_g: str = '12.5 GPa' # TODO: unit-aware type
|
||||
core_fc: str = Field('20 MPa', description='positive value') # TODO: unit-aware type
|
||||
core_ft: str = Field('2.2 MPa', description='positive value') # TODO: unit-aware type
|
||||
core_fu: str = Field('-17.0 MPa', description='negative value') # TODO: unit-aware type
|
||||
core_ec: float = Field(-2.0e-3, description='negative value')
|
||||
core_ecu: float = Field(-3.5e-3, description='negative value')
|
||||
core_etu: float = Field(1.0e-3, description='positive value')
|
||||
cover_g: str = "12.5 GPa" # TODO: unit-aware type
|
||||
core_fc: str = Field("20 MPa", description="positive value") # TODO: unit-aware type
|
||||
core_ft: str = Field("2.2 MPa", description="positive value") # TODO: unit-aware type
|
||||
core_fu: str = Field("-17.0 MPa", description="negative value") # TODO: unit-aware type
|
||||
core_ec: float = Field(-2.0e-3, description="negative value")
|
||||
core_ecu: float = Field(-3.5e-3, description="negative value")
|
||||
core_etu: float = Field(1.0e-3, description="positive value")
|
||||
core_shear_ret_factor: float = 0.1
|
||||
core_g: str = '12.5 GPa' # TODO: unit-aware type
|
||||
longitudinal_steel_material: str = 'Steel02'
|
||||
transverse_steel_material: str = 'Steel02'
|
||||
|
||||
core_g: str = "12.5 GPa" # TODO: unit-aware type
|
||||
longitudinal_steel_material: str = "Steel02"
|
||||
transverse_steel_material: str = "Steel02"
|
||||
|
|
|
|||
|
|
@ -17,160 +17,160 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class MinmaxSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'MinMax',
|
||||
'x-book': 'Combined_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "MinMax",
|
||||
"x-book": "Combined_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Strain',
|
||||
'actions': [
|
||||
"trigger": "Stress-Strain",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Minimum_strain',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Minimum_strain",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Maximum_strain',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Maximum_strain",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Minimum_deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Minimum_deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Minimum_rotation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Minimum_rotation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_rotation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_rotation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_for_defining_stress-strain_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_for_defining_stress-strain_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_for_defining_force-deformation_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_for_defining_force-deformation_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_for_defining_moment-rotation_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_for_defining_moment-rotation_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Deformation',
|
||||
'actions': [
|
||||
"trigger": "Force-Deformation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Minimum_strain',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Minimum_strain",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_strain',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_strain",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Minimum_deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Minimum_deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Maximum_deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Maximum_deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Minimum_rotation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Minimum_rotation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_rotation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_rotation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_for_defining_stress-strain_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_for_defining_stress-strain_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_for_defining_force-deformation_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_for_defining_force-deformation_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_for_defining_moment-rotation_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_for_defining_moment-rotation_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Moment-Rotation',
|
||||
'actions': [
|
||||
"trigger": "Moment-Rotation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Minimum_strain',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Minimum_strain",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_strain',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_strain",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Minimum_deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Minimum_deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Maximum_deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Maximum_deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Minimum_rotation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Minimum_rotation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Maximum_rotation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Maximum_rotation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_for_defining_stress-strain_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_for_defining_stress-strain_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Material_for_defining_force-deformation_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Material_for_defining_force-deformation_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_for_defining_moment-rotation_behaviour',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_for_defining_moment-rotation_behaviour",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -180,15 +180,14 @@ class MinmaxSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
formulation: Literal['Stress-Strain', 'Force-Deformation', 'Moment-Rotation'] = 'Stress-Strain'
|
||||
material_for_defining_stress_strain_behaviour: str = 'Steel01'
|
||||
material_for_defining_force_deformation_behaviour: str = 'Steel01'
|
||||
material_for_defining_moment_rotation_behaviour: str = 'Steel01'
|
||||
material: Literal["_"] = "_"
|
||||
formulation: Literal["Stress-Strain", "Force-Deformation", "Moment-Rotation"] = "Stress-Strain"
|
||||
material_for_defining_stress_strain_behaviour: str = "Steel01"
|
||||
material_for_defining_force_deformation_behaviour: str = "Steel01"
|
||||
material_for_defining_moment_rotation_behaviour: str = "Steel01"
|
||||
minimum_strain: float = -1.0e16
|
||||
maximum_strain: float = 1.0e16
|
||||
minimum_deformation: str = '-1.0e16 m' # TODO: unit-aware type
|
||||
maximum_deformation: str = '1.0e16 m' # TODO: unit-aware type
|
||||
minimum_rotation: str = '-1.0e16 rad' # TODO: unit-aware type
|
||||
maximum_rotation: str = '1.0e16 rad' # TODO: unit-aware type
|
||||
|
||||
minimum_deformation: str = "-1.0e16 m" # TODO: unit-aware type
|
||||
maximum_deformation: str = "1.0e16 m" # TODO: unit-aware type
|
||||
minimum_rotation: str = "-1.0e16 rad" # TODO: unit-aware type
|
||||
maximum_rotation: str = "1.0e16 rad" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,134 +17,134 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ParallelSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Parallel',
|
||||
'x-book': 'Combined_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Parallel",
|
||||
"x-book": "Combined_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_1st_material',
|
||||
'gid_name': 'Activate_1st_material',
|
||||
'rules': [
|
||||
"field": "activate_1st_material",
|
||||
"gid_name": "Activate_1st_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_1',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_1",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_1',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_1",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_2nd_material',
|
||||
'gid_name': 'Activate_2nd_material',
|
||||
'rules': [
|
||||
"field": "activate_2nd_material",
|
||||
"gid_name": "Activate_2nd_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_2',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_2",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_2',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_2",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_3rd_material',
|
||||
'gid_name': 'Activate_3rd_material',
|
||||
'rules': [
|
||||
"field": "activate_3rd_material",
|
||||
"gid_name": "Activate_3rd_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_3',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_3",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_3',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_3",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_4th_material',
|
||||
'gid_name': 'Activate_4th_Material',
|
||||
'rules': [
|
||||
"field": "activate_4th_material",
|
||||
"gid_name": "Activate_4th_Material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_4',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_4",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_4',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_4",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_5th_material',
|
||||
'gid_name': 'Activate_5th_material',
|
||||
'rules': [
|
||||
"field": "activate_5th_material",
|
||||
"gid_name": "Activate_5th_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_5',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_5",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_5',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_5",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -154,15 +154,14 @@ class ParallelSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Parallel'] = 'Parallel'
|
||||
activate_1st_material: Literal['0', '1'] = '1'
|
||||
material_1: str = 'Elastic'
|
||||
activate_2nd_material: Literal['0', '1'] = '1'
|
||||
material_2: str = 'Elastic'
|
||||
activate_3rd_material: Literal['0', '1'] = '0'
|
||||
material_3: str = 'Elastic'
|
||||
activate_4th_material: Literal['0', '1'] = '0'
|
||||
material_4: str = 'Elastic'
|
||||
activate_5th_material: Literal['0', '1'] = '0'
|
||||
material_5: str = 'Elastic'
|
||||
|
||||
material: Literal["Parallel"] = "Parallel"
|
||||
activate_1st_material: Literal["0", "1"] = "1"
|
||||
material_1: str = "Elastic"
|
||||
activate_2nd_material: Literal["0", "1"] = "1"
|
||||
material_2: str = "Elastic"
|
||||
activate_3rd_material: Literal["0", "1"] = "0"
|
||||
material_3: str = "Elastic"
|
||||
activate_4th_material: Literal["0", "1"] = "0"
|
||||
material_4: str = "Elastic"
|
||||
activate_5th_material: Literal["0", "1"] = "0"
|
||||
material_5: str = "Elastic"
|
||||
|
|
|
|||
|
|
@ -17,13 +17,14 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PlateFiberSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Plate_Fiber',
|
||||
'x-book': 'Section_Force-Deformation',
|
||||
"x-gid-name": "Plate_Fiber",
|
||||
"x-book": "Section_Force-Deformation",
|
||||
}
|
||||
)
|
||||
|
||||
section: Literal['PlateFiber'] = 'PlateFiber'
|
||||
compatible_materials: Literal['nD_Materials'] = 'nD_Materials'
|
||||
material_mat_multidimensional_nd_materials: str = Field('Elastic_Isotropic', description='All nD materials are listed here')
|
||||
plate_thickness_h: str = '0.25m' # TODO: unit-aware type
|
||||
|
||||
section: Literal["PlateFiber"] = "PlateFiber"
|
||||
compatible_materials: Literal["nD_Materials"] = "nD_Materials"
|
||||
material_mat_multidimensional_nd_materials: str = Field(
|
||||
"Elastic_Isotropic", description="All nD materials are listed here"
|
||||
)
|
||||
plate_thickness_h: str = "0.25m" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,56 +17,56 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PressuredependmultiyieldSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'PressureDependMultiYield',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "PressureDependMultiYield",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_plastic_response',
|
||||
'gid_name': 'Activate_plastic_response',
|
||||
'rules': [
|
||||
"field": "activate_plastic_response",
|
||||
"gid_name": "Activate_plastic_response",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Activate_plastic_response_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Activate_plastic_response_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Activate_plastic_response_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Activate_plastic_response_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'automatic_surface_generation',
|
||||
'gid_name': 'Automatic_surface_generation',
|
||||
'rules': [
|
||||
"field": "automatic_surface_generation",
|
||||
"gid_name": "Automatic_surface_generation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Define_yield_surfaces_based_on_shear_modulus_reduction_curve',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Define_yield_surfaces_based_on_shear_modulus_reduction_curve",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Define_yield_surfaces_based_on_shear_modulus_reduction_curve',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Define_yield_surfaces_based_on_shear_modulus_reduction_curve",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -76,30 +76,36 @@ class PressuredependmultiyieldSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['PressureDependMultiYield'] = 'PressureDependMultiYield'
|
||||
soil_type: Literal['Loose_Sand', 'Medium_Sand', 'Medium-dense_Sand', 'Dense_Sand', 'Custom'] = 'Custom'
|
||||
saturated_soil_mass_density: str = '1.7ton/m^3' # TODO: unit-aware type
|
||||
reference_shear_modulus_gr: str = '55MPa' # TODO: unit-aware type
|
||||
reference_bulk_modulus: str = '150MPa' # TODO: unit-aware type
|
||||
material: Literal["PressureDependMultiYield"] = "PressureDependMultiYield"
|
||||
soil_type: Literal["Loose_Sand", "Medium_Sand", "Medium-dense_Sand", "Dense_Sand", "Custom"] = (
|
||||
"Custom"
|
||||
)
|
||||
saturated_soil_mass_density: str = "1.7ton/m^3" # TODO: unit-aware type
|
||||
reference_shear_modulus_gr: str = "55MPa" # TODO: unit-aware type
|
||||
reference_bulk_modulus: str = "150MPa" # TODO: unit-aware type
|
||||
shear_strain_at_which_maximum_stress_is_reached: float = 0.1
|
||||
friction_angle: int = Field(29, description='Enter angle in degrees')
|
||||
reference_mean_effective_confining_pressure_pr: str = '80kPa' # TODO: unit-aware type
|
||||
friction_angle: int = Field(29, description="Enter angle in degrees")
|
||||
reference_mean_effective_confining_pressure_pr: str = "80kPa" # TODO: unit-aware type
|
||||
positive_constant_d: float = 0.5
|
||||
phase_transformation_angle: int = Field(29, description='Enter angle in degrees')
|
||||
contraction_rate_constant: float = Field(0.21, description='A non-negative constant defining the rate of shear-induced volume decrease (contraction) or pore pressure buildup. A larger value corresponds to faster contraction rate.')
|
||||
phase_transformation_angle: int = Field(29, description="Enter angle in degrees")
|
||||
contraction_rate_constant: float = Field(
|
||||
0.21,
|
||||
description="A non-negative constant defining the rate of shear-induced volume decrease (contraction) or pore pressure buildup. A larger value corresponds to faster contraction rate.",
|
||||
)
|
||||
dilation_rate_constant_1: float = 0.0
|
||||
dilation_rate_constant_2: float = 0.0
|
||||
liquefaction_parameter_1: str = '10kPa' # TODO: unit-aware type
|
||||
liquefaction_parameter_1: str = "10kPa" # TODO: unit-aware type
|
||||
liquefaction_parameter_2: float = 0.02
|
||||
liquefaction_parameter_3: float = Field(1.0, description='liquefac3 takes a value between 0.0 and 3.0.')
|
||||
liquefaction_parameter_3: float = Field(
|
||||
1.0, description="liquefac3 takes a value between 0.0 and 3.0."
|
||||
)
|
||||
initial_void_ratio: float = 0.85
|
||||
critical_straight_line_parameter_cs1: float = 0.9
|
||||
critical_straight_line_parameter_cs2: float = 0.02
|
||||
critical_straight_line_parameter_cs3: float = 0.07
|
||||
atmospheric_pressure_for_normalization: str = '101kPa' # TODO: unit-aware type
|
||||
numerical_constant: str = '0.3kPa' # TODO: unit-aware type
|
||||
yield_surfaces: int = Field(20, description='Yield surfaces must be less than 40!')
|
||||
activate_plastic_response: Literal['1', '0'] = '0'
|
||||
atmospheric_pressure_for_normalization: str = "101kPa" # TODO: unit-aware type
|
||||
numerical_constant: str = "0.3kPa" # TODO: unit-aware type
|
||||
yield_surfaces: int = Field(20, description="Yield surfaces must be less than 40!")
|
||||
activate_plastic_response: Literal["1", "0"] = "0"
|
||||
activate_plastic_response_at_interval: int = 2
|
||||
automatic_surface_generation: Literal['0', '1'] = '1'
|
||||
|
||||
automatic_surface_generation: Literal["0", "1"] = "1"
|
||||
|
|
|
|||
|
|
@ -17,56 +17,56 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class Pressuredependmultiyield02Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'PressureDependMultiYield02',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "PressureDependMultiYield02",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_plastic_response',
|
||||
'gid_name': 'Activate_plastic_response',
|
||||
'rules': [
|
||||
"field": "activate_plastic_response",
|
||||
"gid_name": "Activate_plastic_response",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Activate_plastic_response_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Activate_plastic_response_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Activate_plastic_response_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Activate_plastic_response_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'automatic_surface_generation',
|
||||
'gid_name': 'Automatic_surface_generation',
|
||||
'rules': [
|
||||
"field": "automatic_surface_generation",
|
||||
"gid_name": "Automatic_surface_generation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Define_yield_surfaces_based_on_shear_modulus_reduction_curve',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Define_yield_surfaces_based_on_shear_modulus_reduction_curve",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Define_yield_surfaces_based_on_shear_modulus_reduction_curve',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Define_yield_surfaces_based_on_shear_modulus_reduction_curve",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -76,32 +76,33 @@ class Pressuredependmultiyield02Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['PressureDependMultiYield02'] = 'PressureDependMultiYield02'
|
||||
soil_type: Literal['Dr=30%', 'Dr=40%', 'Dr=50%', 'Dr=60%', 'Dr=75%', 'Custom'] = 'Custom'
|
||||
saturated_soil_mass_density: str = '1.7ton/m^3' # TODO: unit-aware type
|
||||
reference_shear_modulus_gr: str = '55MPa' # TODO: unit-aware type
|
||||
reference_bulk_modulus: str = '150MPa' # TODO: unit-aware type
|
||||
material: Literal["PressureDependMultiYield02"] = "PressureDependMultiYield02"
|
||||
soil_type: Literal["Dr=30%", "Dr=40%", "Dr=50%", "Dr=60%", "Dr=75%", "Custom"] = "Custom"
|
||||
saturated_soil_mass_density: str = "1.7ton/m^3" # TODO: unit-aware type
|
||||
reference_shear_modulus_gr: str = "55MPa" # TODO: unit-aware type
|
||||
reference_bulk_modulus: str = "150MPa" # TODO: unit-aware type
|
||||
shear_strain_at_which_maximum_stress_is_reached: float = 0.1
|
||||
friction_angle: int = Field(29, description='Enter angle in degrees')
|
||||
reference_mean_effective_confining_pressure_pr: str = '80kPa' # TODO: unit-aware type
|
||||
friction_angle: int = Field(29, description="Enter angle in degrees")
|
||||
reference_mean_effective_confining_pressure_pr: str = "80kPa" # TODO: unit-aware type
|
||||
positive_constant_d: float = 0.5
|
||||
phase_transformation_angle: int = Field(29, description='Enter angle in degrees')
|
||||
phase_transformation_angle: int = Field(29, description="Enter angle in degrees")
|
||||
contraction_constant_1: float = 0.87
|
||||
contraction_constant_2: int = 5
|
||||
contraction_constant_3: float = Field(0.18, description='A non-negative constant reflecting Ks effect')
|
||||
contraction_constant_3: float = Field(
|
||||
0.18, description="A non-negative constant reflecting Ks effect"
|
||||
)
|
||||
dilation_rate_constant_1: float = 0.0
|
||||
dilation_rate_constant_2: float = 0.0
|
||||
dilation_rate_constant_3: float = 0.0
|
||||
liquefaction_parameter_1: str = '10kPa' # TODO: unit-aware type
|
||||
liquefaction_parameter_1: str = "10kPa" # TODO: unit-aware type
|
||||
liquefaction_parameter_2: float = 0.02
|
||||
initial_void_ratio: float = 0.85
|
||||
critical_straight_line_parameter_cs1: float = 0.9
|
||||
critical_straight_line_parameter_cs2: float = 0.02
|
||||
critical_straight_line_parameter_cs3: float = 0.07
|
||||
atmospheric_pressure_for_normalization: str = '101kPa' # TODO: unit-aware type
|
||||
numerical_constant: str = '0.3kPa' # TODO: unit-aware type
|
||||
yield_surfaces: int = Field(20, description='Yield surfaces must be less than 40!')
|
||||
activate_plastic_response: Literal['1', '0'] = '0'
|
||||
atmospheric_pressure_for_normalization: str = "101kPa" # TODO: unit-aware type
|
||||
numerical_constant: str = "0.3kPa" # TODO: unit-aware type
|
||||
yield_surfaces: int = Field(20, description="Yield surfaces must be less than 40!")
|
||||
activate_plastic_response: Literal["1", "0"] = "0"
|
||||
activate_plastic_response_at_interval: int = 2
|
||||
automatic_surface_generation: Literal['0', '1'] = '1'
|
||||
|
||||
automatic_surface_generation: Literal["0", "1"] = "1"
|
||||
|
|
|
|||
|
|
@ -17,56 +17,56 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class PressureindependmultiyieldSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'PressureIndependMultiYield',
|
||||
'x-book': 'Multidimensional_(nD)_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "PressureIndependMultiYield",
|
||||
"x-book": "Multidimensional_(nD)_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_plastic_response',
|
||||
'gid_name': 'Activate_plastic_response',
|
||||
'rules': [
|
||||
"field": "activate_plastic_response",
|
||||
"gid_name": "Activate_plastic_response",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Activate_plastic_response_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Activate_plastic_response_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Activate_plastic_response_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Activate_plastic_response_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'automatic_surface_generation',
|
||||
'gid_name': 'Automatic_surface_generation',
|
||||
'rules': [
|
||||
"field": "automatic_surface_generation",
|
||||
"gid_name": "Automatic_surface_generation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Define_yield_surfaces_based_on_shear_modulus_reduction_curve',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Define_yield_surfaces_based_on_shear_modulus_reduction_curve",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Define_yield_surfaces_based_on_shear_modulus_reduction_curve',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Define_yield_surfaces_based_on_shear_modulus_reduction_curve",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -76,18 +76,17 @@ class PressureindependmultiyieldSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['PressureIndependMultiYield'] = 'PressureIndependMultiYield'
|
||||
soil_type: Literal['Soft_Clay', 'Medium_Clay', 'Stiff_Clay', 'Custom'] = 'Custom'
|
||||
saturated_soil_mass_density: str = '1.5ton/m^3' # TODO: unit-aware type
|
||||
reference_shear_modulus_gr: str = '60MPa' # TODO: unit-aware type
|
||||
reference_bulk_modulus: str = '300MPa' # TODO: unit-aware type
|
||||
apparent_cohesion: str = '37kPa' # TODO: unit-aware type
|
||||
material: Literal["PressureIndependMultiYield"] = "PressureIndependMultiYield"
|
||||
soil_type: Literal["Soft_Clay", "Medium_Clay", "Stiff_Clay", "Custom"] = "Custom"
|
||||
saturated_soil_mass_density: str = "1.5ton/m^3" # TODO: unit-aware type
|
||||
reference_shear_modulus_gr: str = "60MPa" # TODO: unit-aware type
|
||||
reference_bulk_modulus: str = "300MPa" # TODO: unit-aware type
|
||||
apparent_cohesion: str = "37kPa" # TODO: unit-aware type
|
||||
shear_strain_at_which_maximum_stress_is_reached: float = 0.1
|
||||
friction_angle: float = Field(0.0, description='Enter angle in degrees')
|
||||
reference_mean_effective_confining_pressure_pr: str = '100kPa' # TODO: unit-aware type
|
||||
friction_angle: float = Field(0.0, description="Enter angle in degrees")
|
||||
reference_mean_effective_confining_pressure_pr: str = "100kPa" # TODO: unit-aware type
|
||||
positive_constant_d: float = 0.0
|
||||
yield_surfaces: int = Field(20, description='Yield surfaces must be less than 40!')
|
||||
activate_plastic_response: Literal['1', '0'] = '0'
|
||||
yield_surfaces: int = Field(20, description="Yield surfaces must be less than 40!")
|
||||
activate_plastic_response: Literal["1", "0"] = "0"
|
||||
activate_plastic_response_at_interval: int = 2
|
||||
automatic_surface_generation: Literal['0', '1'] = '1'
|
||||
|
||||
automatic_surface_generation: Literal["0", "1"] = "1"
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class Pysimple1Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'PySimple1',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "PySimple1",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,12 +56,21 @@ class Pysimple1Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
p_y_backbone_curve: Literal['Soft_clay', 'Sand'] = Field('Soft_clay', description='Soft clay corresponds to Matlock (1970) relation. Sand corresponds to API (1993) relation')
|
||||
ultimate_capacity_pult: str = '4000 kN' # TODO: unit-aware type
|
||||
displacement_at_which_the_50_of_pult_is_mobilized_in_monotonic_loading: str = Field('0.02 m', description='Displacement at which the 50% of pult is mobilized in monotonic loading') # TODO: unit-aware type
|
||||
coefficient_cd: float = Field(0.0, description='Sets the drag resistance within a fully-mobilized gap as Cd*pult')
|
||||
viscous_damping_coefficient: str = Field('0.0 kNsec/m', description='Nonzero values are used to represent radiation damping effects') # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
material: Literal["_"] = "_"
|
||||
p_y_backbone_curve: Literal["Soft_clay", "Sand"] = Field(
|
||||
"Soft_clay",
|
||||
description="Soft clay corresponds to Matlock (1970) relation. Sand corresponds to API (1993) relation",
|
||||
)
|
||||
ultimate_capacity_pult: str = "4000 kN" # TODO: unit-aware type
|
||||
displacement_at_which_the_50_of_pult_is_mobilized_in_monotonic_loading: str = Field(
|
||||
"0.02 m",
|
||||
description="Displacement at which the 50% of pult is mobilized in monotonic loading",
|
||||
) # TODO: unit-aware type
|
||||
coefficient_cd: float = Field(
|
||||
0.0, description="Sets the drag resistance within a fully-mobilized gap as Cd*pult"
|
||||
)
|
||||
viscous_damping_coefficient: str = Field(
|
||||
"0.0 kNsec/m", description="Nonzero values are used to represent radiation damping effects"
|
||||
) # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
|
||||
|
|
|
|||
|
|
@ -17,20 +17,25 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class QuadSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Quad',
|
||||
'x-book': 'Surface_Elements',
|
||||
"x-gid-name": "Quad",
|
||||
"x-book": "Surface_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['Quad'] = Field('Quad', description='Four node quadrilateral element object which uses a bilinear isoparametric formulation')
|
||||
compatible_materials: Literal['nD_Materials'] = 'nD_Materials'
|
||||
define_equaldof_between_nodes_of_the_same_vertical_location: Literal['0', '1'] = Field('0', description='equalDOF commands are automatically printed for element nodes which share the same vertical (Y) location')
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = 'Elastic_Isotropic'
|
||||
plane_behavior: Literal['PlaneStrain', 'PlaneStress'] = 'PlaneStrain'
|
||||
thickness: str = '1m' # TODO: unit-aware type
|
||||
surface_pressure: str = '0.0kPa' # TODO: unit-aware type
|
||||
applied_on_the_global_axes: Literal['_'] = '_'
|
||||
x_direction: str = '0.0 kN/m^3' # TODO: unit-aware type
|
||||
y_direction: str = '0.0 kN/m^3' # TODO: unit-aware type
|
||||
mass_density: str = '0.0 ton/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["Quad"] = Field(
|
||||
"Quad",
|
||||
description="Four node quadrilateral element object which uses a bilinear isoparametric formulation",
|
||||
)
|
||||
compatible_materials: Literal["nD_Materials"] = "nD_Materials"
|
||||
define_equaldof_between_nodes_of_the_same_vertical_location: Literal["0", "1"] = Field(
|
||||
"0",
|
||||
description="equalDOF commands are automatically printed for element nodes which share the same vertical (Y) location",
|
||||
)
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = "Elastic_Isotropic"
|
||||
plane_behavior: Literal["PlaneStrain", "PlaneStress"] = "PlaneStrain"
|
||||
thickness: str = "1m" # TODO: unit-aware type
|
||||
surface_pressure: str = "0.0kPa" # TODO: unit-aware type
|
||||
applied_on_the_global_axes: Literal["_"] = "_"
|
||||
x_direction: str = "0.0 kN/m^3" # TODO: unit-aware type
|
||||
y_direction: str = "0.0 kN/m^3" # TODO: unit-aware type
|
||||
mass_density: str = "0.0 ton/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,30 +17,30 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class QuadupSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'QuadUP',
|
||||
'x-book': 'Surface_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "QuadUP",
|
||||
"x-book": "Surface_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'update_permeabilities',
|
||||
'gid_name': 'Update_permeabilities',
|
||||
'rules': [
|
||||
"field": "update_permeabilities",
|
||||
"gid_name": "Update_permeabilities",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Update_permeabilities_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Update_permeabilities_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Update_permeabilities_at_interval',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Update_permeabilities_at_interval",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -50,18 +50,28 @@ class QuadupSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
element_type: Literal['QuadUP'] = Field('QuadUP', description='Four-node plane-strain element using bilinear isoparametric formulation')
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
define_equal_translational_dof_between_nodes_of_the_same_vertical_location: Literal['0', '1'] = Field('0', description='equalDOF commands are automatically printed for element nodes which share the same vertical (Y) location')
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = 'PressureIndependMultiYield'
|
||||
thickness: str = '1.0m' # TODO: unit-aware type
|
||||
combined_undrained_bulk_modulus_bc: str = '2.2GPa' # TODO: unit-aware type
|
||||
fluid_mass_density: str = '1.0ton/m^3' # TODO: unit-aware type
|
||||
permeability_coefficient_in_horizontal_direction: str = '1.0e-3 m/sec' # TODO: unit-aware type
|
||||
permeability_coefficient_in_vertical_direction: str = '1.0e-3 m/sec' # TODO: unit-aware type
|
||||
update_permeabilities: Literal['1', '0'] = Field('0', description='Update permeabilities at the start of the selected interval (before analysis options)')
|
||||
element_type: Literal["QuadUP"] = Field(
|
||||
"QuadUP",
|
||||
description="Four-node plane-strain element using bilinear isoparametric formulation",
|
||||
)
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
define_equal_translational_dof_between_nodes_of_the_same_vertical_location: Literal[
|
||||
"0", "1"
|
||||
] = Field(
|
||||
"0",
|
||||
description="equalDOF commands are automatically printed for element nodes which share the same vertical (Y) location",
|
||||
)
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = "PressureIndependMultiYield"
|
||||
thickness: str = "1.0m" # TODO: unit-aware type
|
||||
combined_undrained_bulk_modulus_bc: str = "2.2GPa" # TODO: unit-aware type
|
||||
fluid_mass_density: str = "1.0ton/m^3" # TODO: unit-aware type
|
||||
permeability_coefficient_in_horizontal_direction: str = "1.0e-3 m/sec" # TODO: unit-aware type
|
||||
permeability_coefficient_in_vertical_direction: str = "1.0e-3 m/sec" # TODO: unit-aware type
|
||||
update_permeabilities: Literal["1", "0"] = Field(
|
||||
"0",
|
||||
description="Update permeabilities at the start of the selected interval (before analysis options)",
|
||||
)
|
||||
update_permeabilities_at_interval: int = 1
|
||||
uniform_normal_traction: str = '0.0kPa' # TODO: unit-aware type
|
||||
x_acceleration: str = '0.0m/sec^2' # TODO: unit-aware type
|
||||
y_acceleration: str = '0.0m/sec^2' # TODO: unit-aware type
|
||||
|
||||
uniform_normal_traction: str = "0.0kPa" # TODO: unit-aware type
|
||||
x_acceleration: str = "0.0m/sec^2" # TODO: unit-aware type
|
||||
y_acceleration: str = "0.0m/sec^2" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class Qzsimple1Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'QzSimple1',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "QzSimple1",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,12 +56,22 @@ class Qzsimple1Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
q_z_backbone_curve: Literal["Reese_and_O'Neill_relation", 'Vijayvergiya_relation'] = Field("Reese_and_O'Neill_relation", description="Reese and O'Neil relation is for drilled shafts in clay. Vijayvergiya relation is for piles in sand.")
|
||||
ultimate_capacity_qult: str = '4000 kN' # TODO: unit-aware type
|
||||
displacement_at_which_the_50_of_qult_is_mobilized_in_monotonic_loading: str = Field('0.02 m', description='Displacement at which the 50% of qult is mobilized in monotonic loading') # TODO: unit-aware type
|
||||
suction: float = Field(0.0, description='Uplift resistance is equal to suction*qult. Valid values: between 0.0 - 0.1')
|
||||
viscous_damping_coefficient: str = Field('0.0 kNsec/m', description='Nonzero values are used to represent radiation damping effects') # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
material: Literal["_"] = "_"
|
||||
q_z_backbone_curve: Literal["Reese_and_O'Neill_relation", "Vijayvergiya_relation"] = Field(
|
||||
"Reese_and_O'Neill_relation",
|
||||
description="Reese and O'Neil relation is for drilled shafts in clay. Vijayvergiya relation is for piles in sand.",
|
||||
)
|
||||
ultimate_capacity_qult: str = "4000 kN" # TODO: unit-aware type
|
||||
displacement_at_which_the_50_of_qult_is_mobilized_in_monotonic_loading: str = Field(
|
||||
"0.02 m",
|
||||
description="Displacement at which the 50% of qult is mobilized in monotonic loading",
|
||||
) # TODO: unit-aware type
|
||||
suction: float = Field(
|
||||
0.0,
|
||||
description="Uplift resistance is equal to suction*qult. Valid values: between 0.0 - 0.1",
|
||||
)
|
||||
viscous_damping_coefficient: str = Field(
|
||||
"0.0 kNsec/m", description="Nonzero values are used to represent radiation damping effects"
|
||||
) # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class RambergOsgoodSteelSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Ramberg-Osgood steel',
|
||||
'x-book': 'Uniaxial_Steel_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Ramberg-Osgood steel",
|
||||
"x-book": "Uniaxial_Steel_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,14 +56,13 @@ class RambergOsgoodSteelSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
steel_grade: Literal['B500C', 'Custom'] = 'Custom'
|
||||
yield_stress_fy: str = '500 MPa' # TODO: unit-aware type
|
||||
initial_elastic_tangent_e0: str = '200 GPa' # TODO: unit-aware type
|
||||
material: Literal["_"] = "_"
|
||||
steel_grade: Literal["B500C", "Custom"] = "Custom"
|
||||
yield_stress_fy: str = "500 MPa" # TODO: unit-aware type
|
||||
initial_elastic_tangent_e0: str = "200 GPa" # TODO: unit-aware type
|
||||
yield_offset: float = 0.002
|
||||
parameter_n_to_control_transition_from_elastic_to_plastic_branches: int = 5
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class ReinforcingSteelSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Reinforcing_steel',
|
||||
'x-book': 'Uniaxial_Steel_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Reinforcing_steel",
|
||||
"x-book": "Uniaxial_Steel_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,16 +56,15 @@ class ReinforcingSteelSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
steel_grade: Literal['B500C', 'Custom'] = 'Custom'
|
||||
yield_stress_fy: str = '500 MPa' # TODO: unit-aware type
|
||||
ultimate_stress_fsu: str = '575 MPa' # TODO: unit-aware type
|
||||
initial_elastic_tangent_es: str = '200 GPa' # TODO: unit-aware type
|
||||
tangent_at_initial_strain_hardening_esh: str = '20 GPa' # TODO: unit-aware type
|
||||
material: Literal["_"] = "_"
|
||||
steel_grade: Literal["B500C", "Custom"] = "Custom"
|
||||
yield_stress_fy: str = "500 MPa" # TODO: unit-aware type
|
||||
ultimate_stress_fsu: str = "575 MPa" # TODO: unit-aware type
|
||||
initial_elastic_tangent_es: str = "200 GPa" # TODO: unit-aware type
|
||||
tangent_at_initial_strain_hardening_esh: str = "20 GPa" # TODO: unit-aware type
|
||||
strain_corresponding_to_initial_strain_hardening_esh: float = 5e-3
|
||||
strain_at_peak_stress_esu: float = 7.5e-2
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -17,186 +17,186 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SectionAggregatorSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Section_Aggregator',
|
||||
'x-book': 'Combined_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Section_Aggregator",
|
||||
"x-book": "Combined_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'select_section',
|
||||
'gid_name': 'Select_section',
|
||||
'rules': [
|
||||
"field": "select_section",
|
||||
"gid_name": "Select_section",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Section_to_be_aggregated',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Section_to_be_aggregated",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Section_to_be_aggregated',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Section_to_be_aggregated",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_p',
|
||||
'gid_name': 'Activate_P',
|
||||
'rules': [
|
||||
"field": "activate_p",
|
||||
"gid_name": "Activate_P",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Axial_force-deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Axial_force-deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Axial_force-deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Axial_force-deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_mz',
|
||||
'gid_name': 'Activate_Mz',
|
||||
'rules': [
|
||||
"field": "activate_mz",
|
||||
"gid_name": "Activate_Mz",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment-curvature_about_local_z-z',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment-curvature_about_local_z-z",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Moment-curvature_about_local_z-z',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Moment-curvature_about_local_z-z",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_vy',
|
||||
'gid_name': 'Activate_Vy',
|
||||
'rules': [
|
||||
"field": "activate_vy",
|
||||
"gid_name": "Activate_Vy",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Shear_force-deformation_along_local_y-y',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Shear_force-deformation_along_local_y-y",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Shear_force-deformation_along_local_y-y',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Shear_force-deformation_along_local_y-y",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_my',
|
||||
'gid_name': 'Activate_My',
|
||||
'rules': [
|
||||
"field": "activate_my",
|
||||
"gid_name": "Activate_My",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment-curvature_about_local_y-y',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment-curvature_about_local_y-y",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Moment-curvature_about_local_y-y',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Moment-curvature_about_local_y-y",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_vz',
|
||||
'gid_name': 'Activate_Vz',
|
||||
'rules': [
|
||||
"field": "activate_vz",
|
||||
"gid_name": "Activate_Vz",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Shear_force-deformation_along_local_z-z',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Shear_force-deformation_along_local_z-z",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Shear_force-deformation_along_local_z-z',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Shear_force-deformation_along_local_z-z",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_t',
|
||||
'gid_name': 'Activate_T',
|
||||
'rules': [
|
||||
"field": "activate_t",
|
||||
"gid_name": "Activate_T",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Torsion_force-deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Torsion_force-deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Torsion_force-deformation',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Torsion_force-deformation",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -206,21 +206,20 @@ class SectionAggregatorSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
section: Literal['SectionAggregator'] = 'SectionAggregator'
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
compatible_sections: Literal['_'] = '_'
|
||||
select_section: Literal['1', '0'] = '1'
|
||||
section_to_be_aggregated: str = 'Fiber'
|
||||
activate_p: Literal['1', '0'] = '0'
|
||||
axial_force_deformation: str = 'Elastic'
|
||||
activate_mz: Literal['1', '0'] = '0'
|
||||
moment_curvature_about_local_z_z: str = 'Elastic'
|
||||
activate_vy: Literal['1', '0'] = '0'
|
||||
shear_force_deformation_along_local_y_y: str = 'Elastic'
|
||||
activate_my: Literal['1', '0'] = '0'
|
||||
moment_curvature_about_local_y_y: str = 'Elastic'
|
||||
activate_vz: Literal['1', '0'] = '0'
|
||||
shear_force_deformation_along_local_z_z: str = 'Elastic'
|
||||
activate_t: Literal['1', '0'] = '0'
|
||||
torsion_force_deformation: str = 'Elastic'
|
||||
|
||||
section: Literal["SectionAggregator"] = "SectionAggregator"
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
compatible_sections: Literal["_"] = "_"
|
||||
select_section: Literal["1", "0"] = "1"
|
||||
section_to_be_aggregated: str = "Fiber"
|
||||
activate_p: Literal["1", "0"] = "0"
|
||||
axial_force_deformation: str = "Elastic"
|
||||
activate_mz: Literal["1", "0"] = "0"
|
||||
moment_curvature_about_local_z_z: str = "Elastic"
|
||||
activate_vy: Literal["1", "0"] = "0"
|
||||
shear_force_deformation_along_local_y_y: str = "Elastic"
|
||||
activate_my: Literal["1", "0"] = "0"
|
||||
moment_curvature_about_local_y_y: str = "Elastic"
|
||||
activate_vz: Literal["1", "0"] = "0"
|
||||
shear_force_deformation_along_local_z_z: str = "Elastic"
|
||||
activate_t: Literal["1", "0"] = "0"
|
||||
torsion_force_deformation: str = "Elastic"
|
||||
|
|
|
|||
|
|
@ -17,134 +17,134 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class SeriesSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Series',
|
||||
'x-book': 'Combined_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Series",
|
||||
"x-book": "Combined_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_1st_material',
|
||||
'gid_name': 'Activate_1st_material',
|
||||
'rules': [
|
||||
"field": "activate_1st_material",
|
||||
"gid_name": "Activate_1st_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_1',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_1",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_1',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_1",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_2nd_material',
|
||||
'gid_name': 'Activate_2nd_material',
|
||||
'rules': [
|
||||
"field": "activate_2nd_material",
|
||||
"gid_name": "Activate_2nd_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_2',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_2",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_2',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_2",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_3rd_material',
|
||||
'gid_name': 'Activate_3rd_material',
|
||||
'rules': [
|
||||
"field": "activate_3rd_material",
|
||||
"gid_name": "Activate_3rd_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_3',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_3",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_3',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_3",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_4th_material',
|
||||
'gid_name': 'Activate_4th_Material',
|
||||
'rules': [
|
||||
"field": "activate_4th_material",
|
||||
"gid_name": "Activate_4th_Material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_4',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_4",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_4',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_4",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'activate_5th_material',
|
||||
'gid_name': 'Activate_5th_material',
|
||||
'rules': [
|
||||
"field": "activate_5th_material",
|
||||
"gid_name": "Activate_5th_material",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'SET',
|
||||
'field': 'Material_5',
|
||||
'target': '#CURRENT#',
|
||||
"action": "SET",
|
||||
"field": "Material_5",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Material_5',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Material_5",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -154,15 +154,14 @@ class SeriesSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Series'] = 'Series'
|
||||
activate_1st_material: Literal['0', '1'] = '1'
|
||||
material_1: str = 'Elastic'
|
||||
activate_2nd_material: Literal['0', '1'] = '1'
|
||||
material_2: str = 'Elastic'
|
||||
activate_3rd_material: Literal['0', '1'] = '0'
|
||||
material_3: str = 'Elastic'
|
||||
activate_4th_material: Literal['0', '1'] = '0'
|
||||
material_4: str = 'Elastic'
|
||||
activate_5th_material: Literal['0', '1'] = '0'
|
||||
material_5: str = 'Elastic'
|
||||
|
||||
material: Literal["Series"] = "Series"
|
||||
activate_1st_material: Literal["0", "1"] = "1"
|
||||
material_1: str = "Elastic"
|
||||
activate_2nd_material: Literal["0", "1"] = "1"
|
||||
material_2: str = "Elastic"
|
||||
activate_3rd_material: Literal["0", "1"] = "0"
|
||||
material_3: str = "Elastic"
|
||||
activate_4th_material: Literal["0", "1"] = "0"
|
||||
material_4: str = "Elastic"
|
||||
activate_5th_material: Literal["0", "1"] = "0"
|
||||
material_5: str = "Elastic"
|
||||
|
|
|
|||
|
|
@ -17,13 +17,17 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ShellSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Shell',
|
||||
'x-book': 'Surface_Elements',
|
||||
"x-gid-name": "Shell",
|
||||
"x-book": "Surface_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['Shell'] = Field('Shell', description='A Shel element object using a bilinear isoparametric formulation with modified shear interpolation')
|
||||
compatible_materials: Literal['PlateFiber/ElasticMembranePlate'] = 'PlateFiber/ElasticMembranePlate'
|
||||
type: str = 'Elastic_Membrane_Plate'
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["Shell"] = Field(
|
||||
"Shell",
|
||||
description="A Shel element object using a bilinear isoparametric formulation with modified shear interpolation",
|
||||
)
|
||||
compatible_materials: Literal["PlateFiber/ElasticMembranePlate"] = (
|
||||
"PlateFiber/ElasticMembranePlate"
|
||||
)
|
||||
type: str = "Elastic_Membrane_Plate"
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,13 +17,15 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class ShelldkgqSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'ShellDKGQ',
|
||||
'x-book': 'Surface_Elements',
|
||||
"x-gid-name": "ShellDKGQ",
|
||||
"x-book": "Surface_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['ShellDKGQ'] = Field('ShellDKGQ', description='A ShellDKGQ element object is a quadrilateral shell element based on the theory of generalized conforming element.')
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
type: str = 'Elastic_Membrane_Plate'
|
||||
weight_density: str = '25 kN/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["ShellDKGQ"] = Field(
|
||||
"ShellDKGQ",
|
||||
description="A ShellDKGQ element object is a quadrilateral shell element based on the theory of generalized conforming element.",
|
||||
)
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
type: str = "Elastic_Membrane_Plate"
|
||||
weight_density: str = "25 kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,16 +17,18 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class StandardBrickElementSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Standard_Brick_Element',
|
||||
'x-book': 'Solid_Elements',
|
||||
"x-gid-name": "Standard_Brick_Element",
|
||||
"x-book": "Solid_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['stdBrick'] = Field('stdBrick', description='An eight-node brick element using a trilinear isoparametric formulation')
|
||||
compatible_materials: Literal['nD_Materials'] = 'nD_Materials'
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = 'Elastic_Isotropic'
|
||||
applied_on_the_global_axes: Literal['_'] = '_'
|
||||
x_direction: str = '0.0kN/m^3' # TODO: unit-aware type
|
||||
y_direction: str = '0.0kN/m^3' # TODO: unit-aware type
|
||||
z_direction: str = '0.0kN/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["stdBrick"] = Field(
|
||||
"stdBrick",
|
||||
description="An eight-node brick element using a trilinear isoparametric formulation",
|
||||
)
|
||||
compatible_materials: Literal["nD_Materials"] = "nD_Materials"
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = "Elastic_Isotropic"
|
||||
applied_on_the_global_axes: Literal["_"] = "_"
|
||||
x_direction: str = "0.0kN/m^3" # TODO: unit-aware type
|
||||
y_direction: str = "0.0kN/m^3" # TODO: unit-aware type
|
||||
z_direction: str = "0.0kN/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -23,156 +23,156 @@ class CyclicDataRow(BaseModel):
|
|||
class Steel01Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Steel01',
|
||||
'x-book': 'Uniaxial_Steel_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Steel01",
|
||||
"x-book": "Uniaxial_Steel_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Strain',
|
||||
'actions': [
|
||||
"trigger": "Stress-Strain",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_elastic_tangent_E0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_elastic_tangent_E0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Deformation',
|
||||
'actions': [
|
||||
"trigger": "Force-Deformation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_elastic_tangent_E0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_elastic_tangent_E0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Moment-Rotation',
|
||||
'actions': [
|
||||
"trigger": "Moment-Rotation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_elastic_tangent_E0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_elastic_tangent_E0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -182,23 +182,27 @@ class Steel01Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Steel01'] = Field('Steel01', description='Uniaxial bilinear steel material object with kinematic hardening and optional isotropic hardening described by a non-linear evolution equation.')
|
||||
formulation: Literal['Stress-Strain', 'Force-Deformation', 'Moment-Rotation'] = 'Stress-Strain'
|
||||
steel_grade: Literal['S235', 'S275', 'S355', 'S450', 'B500C', 'Custom'] = 'Custom'
|
||||
yield_stress_fy: str = '500 MPa' # TODO: unit-aware type
|
||||
force_fy: str = '500 kN' # TODO: unit-aware type
|
||||
moment_my: str = '250 kNm' # TODO: unit-aware type
|
||||
initial_elastic_tangent_e0: str = '200 GPa' # TODO: unit-aware type
|
||||
initial_stiffness_k: str = '5000 kN/m' # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = '10000 kNm' # TODO: unit-aware type
|
||||
strain_hardening_ratio_b: float = Field(0.02, description='Ratio between post-yield tangent and initial elastic tangent.')
|
||||
isotropic_hardening_parameters: Literal['_'] = '_'
|
||||
material: Literal["Steel01"] = Field(
|
||||
"Steel01",
|
||||
description="Uniaxial bilinear steel material object with kinematic hardening and optional isotropic hardening described by a non-linear evolution equation.",
|
||||
)
|
||||
formulation: Literal["Stress-Strain", "Force-Deformation", "Moment-Rotation"] = "Stress-Strain"
|
||||
steel_grade: Literal["S235", "S275", "S355", "S450", "B500C", "Custom"] = "Custom"
|
||||
yield_stress_fy: str = "500 MPa" # TODO: unit-aware type
|
||||
force_fy: str = "500 kN" # TODO: unit-aware type
|
||||
moment_my: str = "250 kNm" # TODO: unit-aware type
|
||||
initial_elastic_tangent_e0: str = "200 GPa" # TODO: unit-aware type
|
||||
initial_stiffness_k: str = "5000 kN/m" # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = "10000 kNm" # TODO: unit-aware type
|
||||
strain_hardening_ratio_b: float = Field(
|
||||
0.02, description="Ratio between post-yield tangent and initial elastic tangent."
|
||||
)
|
||||
isotropic_hardening_parameters: Literal["_"] = "_"
|
||||
isotropic_hardening_parameter_a1: int = 0
|
||||
isotropic_hardening_parameter_a2: int = 1
|
||||
isotropic_hardening_parameter_a3: int = 0
|
||||
isotropic_hardening_parameter_a4: int = 1
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,201 +23,201 @@ class CyclicDataRow(BaseModel):
|
|||
class Steel02Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Steel02',
|
||||
'x-book': 'Uniaxial_Steel_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Steel02",
|
||||
"x-book": "Uniaxial_Steel_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'formulation',
|
||||
'gid_name': 'Formulation',
|
||||
'rules': [
|
||||
"field": "formulation",
|
||||
"gid_name": "Formulation",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Stress-Strain',
|
||||
'actions': [
|
||||
"trigger": "Stress-Strain",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_elastic_tangent_E0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_elastic_tangent_E0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_stress',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_stress",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_force',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_force",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_moment',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_moment",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Force-Deformation',
|
||||
'actions': [
|
||||
"trigger": "Force-Deformation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_elastic_tangent_E0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_elastic_tangent_E0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_stress',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_stress",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_force',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_force",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_moment',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_moment",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Moment-Rotation',
|
||||
'actions': [
|
||||
"trigger": "Moment-Rotation",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Steel_grade',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Steel_grade",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Yield_Stress_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Yield_Stress_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_elastic_tangent_E0',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_elastic_tangent_E0",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Force_Fy',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Force_Fy",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_stiffness_K',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_stiffness_K",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_My',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_My",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Moment_per_rotation_unit',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Moment_per_rotation_unit",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_stress',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_stress",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Initial_force',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Initial_force",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Initial_moment',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Initial_moment",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -227,30 +227,34 @@ class Steel02Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Steel02'] = Field('Steel02', description='uniaxial Giuffre-Menegotto-Pinto steel material object with isotropic strain hardening')
|
||||
formulation: Literal['Stress-Strain', 'Force-Deformation', 'Moment-Rotation'] = 'Stress-Strain'
|
||||
steel_grade: Literal['S235', 'S275', 'S355', 'S450', 'B500C', 'Custom'] = 'Custom'
|
||||
yield_stress_fy: str = '500 MPa' # TODO: unit-aware type
|
||||
force_fy: str = '500 kN' # TODO: unit-aware type
|
||||
moment_my: str = '250 kNm' # TODO: unit-aware type
|
||||
initial_elastic_tangent_e0: str = '200 GPa' # TODO: unit-aware type
|
||||
initial_stiffness_k: str = '5000 kN/m' # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = '10000 kNm' # TODO: unit-aware type
|
||||
strain_hardening_ratio_b: float = Field(0.02, description='Ratio between post-yield tangent and initial elastic tangent.')
|
||||
parameters_to_control_the_transition: Literal['_'] = '_'
|
||||
material: Literal["Steel02"] = Field(
|
||||
"Steel02",
|
||||
description="uniaxial Giuffre-Menegotto-Pinto steel material object with isotropic strain hardening",
|
||||
)
|
||||
formulation: Literal["Stress-Strain", "Force-Deformation", "Moment-Rotation"] = "Stress-Strain"
|
||||
steel_grade: Literal["S235", "S275", "S355", "S450", "B500C", "Custom"] = "Custom"
|
||||
yield_stress_fy: str = "500 MPa" # TODO: unit-aware type
|
||||
force_fy: str = "500 kN" # TODO: unit-aware type
|
||||
moment_my: str = "250 kNm" # TODO: unit-aware type
|
||||
initial_elastic_tangent_e0: str = "200 GPa" # TODO: unit-aware type
|
||||
initial_stiffness_k: str = "5000 kN/m" # TODO: unit-aware type
|
||||
moment_per_rotation_unit: str = "10000 kNm" # TODO: unit-aware type
|
||||
strain_hardening_ratio_b: float = Field(
|
||||
0.02, description="Ratio between post-yield tangent and initial elastic tangent."
|
||||
)
|
||||
parameters_to_control_the_transition: Literal["_"] = "_"
|
||||
parameter_r0: int = 20
|
||||
parameter_cr1: float = 0.925
|
||||
parameter_cr2: float = 0.15
|
||||
isotropic_hardening_parameters: Literal['_'] = '_'
|
||||
isotropic_hardening_parameters: Literal["_"] = "_"
|
||||
isotropic_hardening_parameter_a1: int = 0
|
||||
isotropic_hardening_parameter_a2: int = 1
|
||||
isotropic_hardening_parameter_a3: int = 0
|
||||
isotropic_hardening_parameter_a4: int = 1
|
||||
initial_stress: str = '0.0 MPa' # TODO: unit-aware type
|
||||
initial_force: str = '0.0 kN' # TODO: unit-aware type
|
||||
initial_moment: str = '0.0 kNm' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
initial_stress: str = "0.0 MPa" # TODO: unit-aware type
|
||||
initial_force: str = "0.0 kN" # TODO: unit-aware type
|
||||
initial_moment: str = "0.0 kNm" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -17,19 +17,20 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class Tri31Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Tri31',
|
||||
'x-book': 'Surface_Elements',
|
||||
"x-gid-name": "Tri31",
|
||||
"x-book": "Surface_Elements",
|
||||
}
|
||||
)
|
||||
|
||||
element_type: Literal['Tri31'] = Field('Tri31', description='Constant strain triangular element')
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = 'Elastic_Isotropic'
|
||||
plane_behavior: Literal['PlaneStrain', 'PlaneStress'] = 'PlaneStrain'
|
||||
thickness: str = '1.0 m' # TODO: unit-aware type
|
||||
surface_pressure: str = '0.0 kPa' # TODO: unit-aware type
|
||||
applied_on_the_global_axes: Literal['_'] = '_'
|
||||
x_direction: str = '0.0 kN/m^3' # TODO: unit-aware type
|
||||
y_direction: str = '0.0 kN/m^3' # TODO: unit-aware type
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
|
||||
element_type: Literal["Tri31"] = Field(
|
||||
"Tri31", description="Constant strain triangular element"
|
||||
)
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
material_mat_multidimensional_nd_materials_user_materials: str = "Elastic_Isotropic"
|
||||
plane_behavior: Literal["PlaneStrain", "PlaneStress"] = "PlaneStrain"
|
||||
thickness: str = "1.0 m" # TODO: unit-aware type
|
||||
surface_pressure: str = "0.0 kPa" # TODO: unit-aware type
|
||||
applied_on_the_global_axes: Literal["_"] = "_"
|
||||
x_direction: str = "0.0 kN/m^3" # TODO: unit-aware type
|
||||
y_direction: str = "0.0 kN/m^3" # TODO: unit-aware type
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -17,196 +17,196 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class TrussSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Truss',
|
||||
'x-book': 'Truss_Elements',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Truss",
|
||||
"x-book": "Truss_Elements",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'cross_section',
|
||||
'gid_name': 'Cross_section',
|
||||
'rules': [
|
||||
"field": "cross_section",
|
||||
"gid_name": "Cross_section",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Rectangular',
|
||||
'actions': [
|
||||
"trigger": "Rectangular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Circular',
|
||||
'actions': [
|
||||
"trigger": "Circular",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Tee',
|
||||
'actions': [
|
||||
"trigger": "Tee",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'General',
|
||||
'actions': [
|
||||
"trigger": "General",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_h',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_h",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_B',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_B",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Diameter_d',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Diameter_d",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_bf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_bf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Height_hf',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Height_hf",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Width_Bw',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Width_Bw",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Area_A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Area_A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'set_modification_factors',
|
||||
'gid_name': 'Set_modification_factors',
|
||||
'rules': [
|
||||
"field": "set_modification_factors",
|
||||
"gid_name": "Set_modification_factors",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'mod._A',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "mod._A",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -216,21 +216,22 @@ class TrussSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
element_type: Literal['Truss'] = 'Truss'
|
||||
compatible_materials: Literal['_'] = '_'
|
||||
material: str = Field('Elastic', description='Choose one existing material to use its parameters.')
|
||||
mass_density: str = '0.0ton/m^3' # TODO: unit-aware type
|
||||
consider_consistent_mass_matrix: Literal['1', '0'] = '0'
|
||||
include_rayleigh_damping: Literal['1', '0'] = '0'
|
||||
weight_density: str = '0.0 kN/m^3' # TODO: unit-aware type
|
||||
cross_section: Literal['Rectangular', 'Tee', 'Circular', 'General'] = 'General'
|
||||
height_h: str = '0.5m' # TODO: unit-aware type
|
||||
width_b: str = '0.3m' # TODO: unit-aware type
|
||||
diameter_d: str = '0.5m' # TODO: unit-aware type
|
||||
width_bf: str = '0.4m' # TODO: unit-aware type
|
||||
height_hf: str = '0.15m' # TODO: unit-aware type
|
||||
width_bw: str = '0.25m' # TODO: unit-aware type
|
||||
area_a: str = '1.0 m^2' # TODO: unit-aware type
|
||||
set_modification_factors: Literal['0', '1'] = '0'
|
||||
element_type: Literal["Truss"] = "Truss"
|
||||
compatible_materials: Literal["_"] = "_"
|
||||
material: str = Field(
|
||||
"Elastic", description="Choose one existing material to use its parameters."
|
||||
)
|
||||
mass_density: str = "0.0ton/m^3" # TODO: unit-aware type
|
||||
consider_consistent_mass_matrix: Literal["1", "0"] = "0"
|
||||
include_rayleigh_damping: Literal["1", "0"] = "0"
|
||||
weight_density: str = "0.0 kN/m^3" # TODO: unit-aware type
|
||||
cross_section: Literal["Rectangular", "Tee", "Circular", "General"] = "General"
|
||||
height_h: str = "0.5m" # TODO: unit-aware type
|
||||
width_b: str = "0.3m" # TODO: unit-aware type
|
||||
diameter_d: str = "0.5m" # TODO: unit-aware type
|
||||
width_bf: str = "0.4m" # TODO: unit-aware type
|
||||
height_hf: str = "0.15m" # TODO: unit-aware type
|
||||
width_bw: str = "0.25m" # TODO: unit-aware type
|
||||
area_a: str = "1.0 m^2" # TODO: unit-aware type
|
||||
set_modification_factors: Literal["0", "1"] = "0"
|
||||
mod_a: int = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class Tzsimple1Spec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'TzSimple1',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "TzSimple1",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,11 +56,17 @@ class Tzsimple1Spec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['_'] = '_'
|
||||
t_z_backbone_curve: Literal["Reese_and_O'Neill_relation", 'Mosher_relation'] = "Reese_and_O'Neill_relation"
|
||||
ultimate_capacity_tult: str = '4000 kN' # TODO: unit-aware type
|
||||
displacement_at_which_the_50_of_tult_is_mobilized_in_monotonic_loading: str = Field('0.02 m', description='Displacement at which the 50% of tult is mobilized in monotonic loading') # TODO: unit-aware type
|
||||
viscous_damping_coefficient: str = Field('0.0 kNsec/m', description='Nonzero values are used to represent radiation damping effects') # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
material: Literal["_"] = "_"
|
||||
t_z_backbone_curve: Literal["Reese_and_O'Neill_relation", "Mosher_relation"] = (
|
||||
"Reese_and_O'Neill_relation"
|
||||
)
|
||||
ultimate_capacity_tult: str = "4000 kN" # TODO: unit-aware type
|
||||
displacement_at_which_the_50_of_tult_is_mobilized_in_monotonic_loading: str = Field(
|
||||
"0.02 m",
|
||||
description="Displacement at which the 50% of tult is mobilized in monotonic loading",
|
||||
) # TODO: unit-aware type
|
||||
viscous_damping_coefficient: str = Field(
|
||||
"0.0 kNsec/m", description="Nonzero values are used to represent radiation damping effects"
|
||||
) # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
|
||||
|
|
|
|||
|
|
@ -17,12 +17,11 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||
class UserMaterialSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'User_Material',
|
||||
'x-book': 'User_Materials',
|
||||
"x-gid-name": "User_Material",
|
||||
"x-book": "User_Materials",
|
||||
}
|
||||
)
|
||||
|
||||
material: Literal['UserMaterial'] = 'UserMaterial'
|
||||
section: Literal['UserMaterial'] = 'UserMaterial'
|
||||
width: str = Field('0.1m', description='Used to calculate self weight') # TODO: unit-aware type
|
||||
|
||||
material: Literal["UserMaterial"] = "UserMaterial"
|
||||
section: Literal["UserMaterial"] = "UserMaterial"
|
||||
width: str = Field("0.1m", description="Used to calculate self weight") # TODO: unit-aware type
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@ class CyclicDataRow(BaseModel):
|
|||
class ViscousSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Viscous',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Viscous",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -56,11 +56,10 @@ class ViscousSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['Viscous'] = 'Viscous'
|
||||
damping_coefficient_c: str = '0.0 kNsec/m' # TODO: unit-aware type
|
||||
material: Literal["Viscous"] = "Viscous"
|
||||
damping_coefficient_c: str = "0.0 kNsec/m" # TODO: unit-aware type
|
||||
power_factor_alpha: int = 1
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
|
|
@ -23,56 +23,56 @@ class CyclicDataRow(BaseModel):
|
|||
class ViscousDamperSpec(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
json_schema_extra={
|
||||
'x-gid-name': 'Viscous_Damper',
|
||||
'x-book': 'Standard_Uniaxial_Materials',
|
||||
'dependencies': [
|
||||
"x-gid-name": "Viscous_Damper",
|
||||
"x-book": "Standard_Uniaxial_Materials",
|
||||
"dependencies": [
|
||||
{
|
||||
'field': 'activate_gap_length',
|
||||
'gid_name': 'Activate_gap_length',
|
||||
'rules': [
|
||||
"field": "activate_gap_length",
|
||||
"gid_name": "Activate_gap_length",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': '0',
|
||||
'actions': [
|
||||
"trigger": "0",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Gap_length',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Gap_length",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': '1',
|
||||
'actions': [
|
||||
"trigger": "1",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Gap_length',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Gap_length",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'field': 'analysis_type',
|
||||
'gid_name': 'Analysis_type',
|
||||
'rules': [
|
||||
"field": "analysis_type",
|
||||
"gid_name": "Analysis_type",
|
||||
"rules": [
|
||||
{
|
||||
'trigger': 'Monotonic',
|
||||
'actions': [
|
||||
"trigger": "Monotonic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'HIDE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "HIDE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'trigger': 'Cyclic',
|
||||
'actions': [
|
||||
"trigger": "Cyclic",
|
||||
"actions": [
|
||||
{
|
||||
'action': 'RESTORE',
|
||||
'field': 'Cyclic_data',
|
||||
'target': '#CURRENT#',
|
||||
"action": "RESTORE",
|
||||
"field": "Cyclic_data",
|
||||
"target": "#CURRENT#",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -82,14 +82,13 @@ class ViscousDamperSpec(BaseModel):
|
|||
}
|
||||
)
|
||||
|
||||
material: Literal['ViscousDamper'] = 'ViscousDamper'
|
||||
elastic_stiffness: str = '300000 kN/m' # TODO: unit-aware type
|
||||
damping_coefficient_cd: str = '280000 kNsec/m' # TODO: unit-aware type
|
||||
material: Literal["ViscousDamper"] = "ViscousDamper"
|
||||
elastic_stiffness: str = "300000 kN/m" # TODO: unit-aware type
|
||||
damping_coefficient_cd: str = "280000 kNsec/m" # TODO: unit-aware type
|
||||
velocity_exponent_alpha: float = 0.30
|
||||
activate_gap_length: Literal['1', '0'] = '0'
|
||||
gap_length: str = '0.05 m' # TODO: unit-aware type
|
||||
analysis_type: Literal['Monotonic', 'Cyclic'] = 'Monotonic'
|
||||
activate_gap_length: Literal["1", "0"] = "0"
|
||||
gap_length: str = "0.05 m" # TODO: unit-aware type
|
||||
analysis_type: Literal["Monotonic", "Cyclic"] = "Monotonic"
|
||||
cyclic_data: list[CyclicDataRow] = Field(default_factory=list)
|
||||
field: Literal['_'] = '_'
|
||||
set_as_variable: Literal['0', '1'] = '0'
|
||||
|
||||
field: Literal["_"] = "_"
|
||||
set_as_variable: Literal["0", "1"] = "0"
|
||||
|
|
|
|||
Loading…
Reference in a new issue