Skip to content

Commit 7bd2b99

Browse files
corrected some issues with plate interface
1 parent 0123050 commit 7bd2b99

22 files changed

+156
-312
lines changed

src/main/java/com/rae/formicapi/simulation/nodal/core/LinearLink.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
* <p>This component is suitable for any linear nodal network simulation:
3939
* thermal, hydraulic, electrical, or other flow-based systems.
4040
*
41-
* @see DomainComponent
41+
* @see SingleDomainComponent
4242
* @see SimulationContext
4343
*/
44-
public class LinearLink extends DomainComponent {
44+
public class LinearLink extends SingleDomainComponent {
4545

4646
private final Node a;
4747
private final Node b;

src/main/java/com/rae/formicapi/simulation/nodal/core/DomainComponent.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/core/SingleDomainComponent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.Map;
77
import java.util.Set;
88

9-
public abstract class DomainComponent implements SimulationComponent {
9+
public abstract class SingleDomainComponent implements SimulationComponent {
1010
public abstract PhysicsType getDomain();
1111
public abstract void stamp(SimulationContext ctx);
1212

src/main/java/com/rae/formicapi/simulation/nodal/thermal/HeatSource.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/core/Source.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
package com.rae.formicapi.simulation.nodal.thermal;
1+
package com.rae.formicapi.simulation.nodal.core;
22

33
import com.rae.formicapi.simulation.nodal.PhysicsType;
4-
import com.rae.formicapi.simulation.nodal.core.Node;
5-
import com.rae.formicapi.simulation.nodal.core.DomainComponent;
6-
import com.rae.formicapi.simulation.nodal.core.SimulationContext;
74

8-
public class HeatSource extends DomainComponent {
5+
public class Source extends SingleDomainComponent {
96

107
private final Node node;
118
private final double flux;
129

13-
public HeatSource(Node node, double flux) {
10+
public Source(Node node, double flux) {
1411
this.node = node;
1512
this.flux = flux;
1613
}
@@ -23,7 +20,7 @@ public PhysicsType getDomain() {
2320
@Override
2421
public void stamp(SimulationContext ctx) {
2522

26-
if (node.isUnknown()) {//todo, correct this shit
23+
if (node.isUnknown()) {
2724
ctx.rhs[node.getId()] += flux;
2825
}
2926

src/main/java/com/rae/formicapi/simulation/physical/material/FunctionalMaterial.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/material/FunctionalMaterial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.rae.formicapi.simulation.physical.material;
1+
package com.rae.formicapi.simulation.nodal.material;
22

33
import java.util.function.BiFunction;
44

src/main/java/com/rae/formicapi/simulation/physical/material/LayeredMaterial.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/material/LayeredMaterial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.rae.formicapi.simulation.physical.material;
1+
package com.rae.formicapi.simulation.nodal.material;
22

33
public class LayeredMaterial implements MaterialField {
44

src/main/java/com/rae/formicapi/simulation/physical/material/Material.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/material/Material.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.rae.formicapi.simulation.physical.material;
1+
package com.rae.formicapi.simulation.nodal.material;
22

33
public enum Material {
44
ALUMINUM(205),

src/main/java/com/rae/formicapi/simulation/physical/material/MaterialField.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/material/MaterialField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.rae.formicapi.simulation.physical.material;
1+
package com.rae.formicapi.simulation.nodal.material;
22

33

44
public interface MaterialField {

src/main/java/com/rae/formicapi/simulation/physical/material/UniformMaterial.java renamed to src/main/java/com/rae/formicapi/simulation/nodal/material/UniformMaterial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.rae.formicapi.simulation.physical.material;
1+
package com.rae.formicapi.simulation.nodal.material;
22

33

44
public class UniformMaterial implements MaterialField {

src/main/java/com/rae/formicapi/simulation/nodal/mechanical/RotationalDamper.java

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,39 @@
88
import java.util.Set;
99

1010
/**
11-
* Represents a viscous rotational damper between two mechanical nodes,
12-
* with heat dissipation into a thermal node.
11+
* Viscous rotational damper between two mechanical nodes, with heat dissipation
12+
* into a thermal node.
13+
*
14+
* <p>This is a multi-physics component spanning the {@link PhysicsType#MECHANICAL}
15+
* and {@link PhysicsType#THERMAL} domains. Both are stamped in a single
16+
* {@link #stamp(Map)} call by the staggered solver.
1317
*
1418
* <p>The mechanical behavior follows the linear relation:
1519
*
1620
* <pre>
1721
* τ = G · (ω_a - ω_b)
1822
* </pre>
1923
*
20-
* <p>The dissipated power is nonlinear in the node values:
24+
* <p>The dissipated power is nonlinear and computed from the frozen mechanical
25+
* state of the current iteration:
2126
*
2227
* <pre>
2328
* P = G · (ω_a - ω_b)²
2429
* </pre>
2530
*
26-
* <p>Because of this nonlinearity, the mechanical and thermal domains are solved
27-
* in two separate simulations. The solver loop is responsible for the staggered
28-
* sequence:
29-
*
30-
* <ol>
31-
* <li>Solve the mechanical network → {@code ω} values are frozen.</li>
32-
* <li>Query {@link #getDissipatedPower()} and inject it as a heat source
33-
* into the thermal RHS.</li>
34-
* <li>Solve the thermal network → {@code T} values resolved.</li>
35-
* </ol>
36-
*
37-
* <p>{@link #stamp(SimulationContext)} only participates in the mechanical solve.
38-
* The thermal node is never stamped here; it is only exposed via
39-
* {@link #getHeatNode()} for the solver loop to use.
31+
* <p>It is injected directly into the thermal RHS at the heat node. Convergence
32+
* of the outer iteration loop resolves the coupling between mechanical velocity
33+
* and thermal dissipation.
4034
*
41-
* <p>The mechanical stamp is symmetric, identical to {@link LinearLink}:
35+
* <p>The mechanical stamp is symmetric:
4236
*
4337
* <pre>
4438
* [ +G -G ] [ω_a]
4539
* [ -G +G ] [ω_b]
4640
* </pre>
4741
*
48-
* @see LinearLink
4942
* @see PhysicsType
43+
* @see SimulationComponent
5044
*/
5145
public class RotationalDamper implements SimulationComponent {
5246

src/main/java/com/rae/formicapi/simulation/nodal/thermal/Advection.java

Lines changed: 0 additions & 90 deletions
This file was deleted.

0 commit comments

Comments
 (0)