conspire/constitutive/hybrid/elastic/additive/
mod.rs

1mod elastic;
2
3use crate::constitutive::{hybrid::Additive, solid::elastic::Elastic};
4use std::ops::Deref;
5
6/// A hybrid elastic constitutive model based on the additive decomposition.
7#[derive(Clone, Debug)]
8pub struct ElasticAdditive<C1, C2>
9where
10    C1: Elastic,
11    C2: Elastic,
12{
13    inner: Additive<C1, C2>,
14}
15
16impl<C1, C2> Deref for ElasticAdditive<C1, C2>
17where
18    C1: Elastic,
19    C2: Elastic,
20{
21    type Target = Additive<C1, C2>;
22    fn deref(&self) -> &Self::Target {
23        &self.inner
24    }
25}
26
27impl<C1, C2> From<(C1, C2)> for ElasticAdditive<C1, C2>
28where
29    C1: Elastic,
30    C2: Elastic,
31{
32    fn from((constitutive_model_1, constitutive_model_2): (C1, C2)) -> Self {
33        Self {
34            inner: Additive(constitutive_model_1, constitutive_model_2),
35        }
36    }
37}