Skip to content

Commit 64184c0

Browse files
authored
Merge pull request #86 from Project-SEA-Stack/feature/radiation-state-space
Add state-space radiation damping method
2 parents 560698d + 727d4df commit 64184c0

73 files changed

Lines changed: 86732 additions & 77 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,13 +301,16 @@ set(HC_SOURCES
301301
src/hydro/waves/irregular_wave.cpp
302302
src/hydro/radiation/radiation_rirf_processing.cpp
303303
src/hydro/radiation/radiation_rirf_convolution.cpp
304+
src/hydro/radiation/radiation_ss_model.cpp
305+
src/hydro/radiation/radiation_ss_fitter.cpp
304306
src/hydro/core/hydro_forces.cpp
305307
# Chrono coupling layer (bridges Chrono physics with Chrono-free core)
306308
src/hydro/chrono/added_mass.cpp
307309
src/hydro/chrono/chrono_state_utils.cpp
308310
src/hydro/chrono/chrono_hydro_coupler.cpp
309311
src/hydro/force_components/hydrostatics_component.cpp
310312
src/hydro/force_components/radiation_component.cpp
313+
src/hydro/force_components/radiation_ss_component.cpp
311314
src/hydro/force_components/excitation_component.cpp
312315
# Logging module (consolidated under src/hydro/logging/)
313316
src/hydro/logging/logger_backend.cpp
@@ -319,7 +322,6 @@ set(HC_HEADERS
319322
${PROJECT_BINARY_DIR}/hydroc/version.h
320323
include/hydroc/hydro_system.h
321324
include/hydroc/helper.h
322-
include/hydroc/hydro_forces.h
323325
include/hydroc/logging.h
324326
include/hydroc/config/hydro_config.h
325327
include/hydroc/core/force_component.h
Binary file not shown.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
hydrodynamics:
2+
bodies:
3+
- name: body1
4+
h5_file: ../../assets/hydroData/iea_sphere.h5
5+
6+
waves:
7+
type: still
8+
9+
radiation:
10+
method: state_space
11+
state_space:
12+
max_order: 10
13+
r2_threshold: 0.99
14+
max_hankel_size: 200
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
chrono-version: 9.0
2+
3+
model:
4+
name: iea_sphere_decay_ss
5+
angle_degrees: false
6+
7+
data_path:
8+
type: RELATIVE
9+
root: "."
10+
11+
bodies:
12+
- name: body1
13+
location: [0, 0, -1.0]
14+
mass: 261800
15+
fixed: false
16+
inertia:
17+
moments: [999, 999, 999]
18+
products: [0, 0, 0]
19+
com:
20+
location: [0, 0, 0]
21+
orientation: [0, 0, 0]
22+
visualization:
23+
shapes:
24+
- type: SPHERE
25+
radius: 5.0
26+
location: [0, 0, 0]
27+
color: [0.3, 0.1, 0.1]
28+
29+
- name: ground
30+
location: [0, 0, 0]
31+
mass: 999
32+
fixed: true
33+
inertia:
34+
moments: [999, 999, 999]
35+
products: [0, 0, 0]
36+
com:
37+
location: [0, 0, 0]
38+
orientation: [0, 0, 0]
39+
40+
joints:
41+
- name: motion_constraint_heave
42+
type: PRISMATIC
43+
body1: ground
44+
body2: body1
45+
location: [0, 0, 0]
46+
axis: [0, 0, 1]
47+
48+
tsdas:
49+
- name: heave_spring_damper
50+
type: TSDA
51+
body1: ground
52+
body2: body1
53+
point1: [0, 0, 0]
54+
point2: [0, 0, 0]
55+
spring_coefficient: 0.0
56+
damping_coefficient: 0.0
57+
free_length: 0.0
58+
visualization:
59+
type: SPRING
60+
radius: 0.05
61+
resolution: 80
62+
turns: 15
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
model_file: iea_sphere_decay_ss.model.yaml
2+
simulation_file: iea_sphere_decay_ss.simulation.yaml
3+
hydro_file: iea_sphere_decay_ss.hydro.yaml
4+
5+
output_directory: ../outputs
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
chrono-version: 9.0
2+
3+
simulation:
4+
contact_method: SMC
5+
6+
time_step: 0.01
7+
end_time: 40.0
8+
enforce_realtime: false
9+
gravity: [0, 0, -9.8]
10+
11+
integrator:
12+
type: HHT
13+
rel_tolerance: 1e-4
14+
abs_tolerance_states: 1e-4
15+
abs_tolerance_multipliers: 1e2
16+
max_iterations: 50
17+
use_stepsize_control: false
18+
use_modified_newton: false
19+
20+
solver:
21+
type: GMRES
22+
max_iterations: 100
23+
tolerance: 1e-8
24+
enable_diagonal_preconditioner: false
25+
26+
visualization:
27+
type: MODEL_FILE
28+
render_fps: 120
29+
enable_shadows: true
30+
camera:
31+
vertical: Z
Binary file not shown.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
hydrodynamics:
2+
bodies:
3+
- name: body1
4+
h5_file: ../../assets/hydroData/iea_sphere.h5
5+
6+
waves:
7+
type: irregular
8+
height: 2.0
9+
period: 8.0
10+
seed: 42
11+
12+
radiation:
13+
method: state_space
14+
state_space:
15+
max_order: 10
16+
r2_threshold: 0.99
17+
max_hankel_size: 200
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
chrono-version: 9.0
2+
3+
model:
4+
name: iea_sphere_irregular_waves_ss
5+
angle_degrees: false
6+
7+
data_path:
8+
type: RELATIVE
9+
root: "."
10+
11+
bodies:
12+
- name: body1
13+
location: [0, 0, -2.0]
14+
mass: 261800
15+
fixed: false
16+
inertia:
17+
moments: [1.0e6, 1.0e6, 1.0e6]
18+
products: [0, 0, 0]
19+
com:
20+
location: [0, 0, 0]
21+
orientation: [0, 0, 0]
22+
visualization:
23+
shapes:
24+
- type: SPHERE
25+
radius: 5.0
26+
location: [0, 0, 0]
27+
color: [0.2, 0.5, 0.7]
28+
29+
- name: ground
30+
location: [0, 0, 0]
31+
mass: 999
32+
fixed: true
33+
inertia:
34+
moments: [999, 999, 999]
35+
products: [0, 0, 0]
36+
com:
37+
location: [0, 0, 0]
38+
orientation: [0, 0, 0]
39+
40+
joints:
41+
- name: heave_constraint
42+
type: PRISMATIC
43+
body1: ground
44+
body2: body1
45+
location: [0, 0, 0]
46+
axis: [0, 0, 1]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
model_file: iea_sphere_irregular_waves_ss.model.yaml
2+
simulation_file: iea_sphere_irregular_waves_ss.simulation.yaml
3+
hydro_file: iea_sphere_irregular_waves_ss.hydro.yaml
4+
5+
output_directory: ../outputs

0 commit comments

Comments
 (0)