Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/PhysicalModels/ElectroMechanicalModels.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

struct ElectroMechModel{E<:Electro,M<:Mechano} <: ElectroMechano
struct ElectroMechModel{E<:Electro,M<:Mechano} <: ElectroMechano{E,M}
electro::E
mechano::M

Expand Down Expand Up @@ -117,7 +117,7 @@ function (+)(Model1::Mechano, Model2::Electro)
ElectroMechModel(Model2, Model1)
end

struct FlexoElectroModel{EM<:ElectroMechano} <: FlexoElectro
struct FlexoElectroModel{EM<:ElectroMechano} <: FlexoElectro{EM}
electromechano::EM
κ::Float64

Expand Down
14 changes: 7 additions & 7 deletions src/PhysicalModels/MagnetoMechanicalModels.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
# Magneto mechanical models
# ===============================

struct MagnetoMechModel{MG<:Magneto,MC<:Mechano} <: MagnetoMechano
magneto::MG
mechano::MC
struct MagnetoMechModel{G<:Magneto,M<:Mechano} <: MagnetoMechano{G,M}
magneto::G
mechano::M

function MagnetoMechModel(magneto::MG, mechano::MC) where {MG <: Magneto, MC <: Mechano}
new{MG,MC}(magneto, mechano)
function MagnetoMechModel(magneto::G, mechano::M) where {G <: Magneto, M <: Mechano}
new{G,M}(magneto, mechano)
end

function MagnetoMechModel(; magneto::MG, mechano::MC) where {MG <: Magneto, MC <: Mechano}
new{MG,MC}(magneto, mechano)
function MagnetoMechModel(; magneto::G, mechano::M) where {G <: Magneto, M <: Mechano}
new{G,M}(magneto, mechano)
end

function (obj::MagnetoMechModel{<:Magneto,<:IsoElastic})(Λ::Float64=1.0)
Expand Down
8 changes: 2 additions & 6 deletions src/PhysicalModels/PINNs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ end



struct ThermoElectroMech_PINNs{A,B,C,D} <: ThermoElectroMechano
struct ThermoElectroMech_PINNs{A,B,C,D} <: ThermoElectroMechano{Thermo,Electro,Mechano}
W::A
b::B
ϵ::C
Expand All @@ -42,9 +42,6 @@ struct ThermoElectroMech_PINNs{A,B,C,D} <: ThermoElectroMechano
new{A,B,C,D}(W, b, ϵ, β, nLayer, κ)
end




function (obj::ThermoElectroMech_PINNs)(Λ::Float64=1.0)

function Ψ(F, E, δθ)
Expand Down Expand Up @@ -86,6 +83,5 @@ struct ThermoElectroMech_PINNs{A,B,C,D} <: ThermoElectroMechano
η(F, E, θ) = -∂Ψθ(F, E, θ)

return (Ψ, ∂ΨF, ∂ΨE, ∂Ψθ, ∂ΨFF, ∂ΨEE, ∂Ψθθ, ∂ΨEF, ∂ΨFθ, ∂ΨEθ, η)

end
end
end
12 changes: 6 additions & 6 deletions src/PhysicalModels/PhysicalModels.jl
Original file line number Diff line number Diff line change
Expand Up @@ -110,16 +110,16 @@ abstract type AnisoElastic <: Elasto end
abstract type Visco <: Mechano end
abstract type ViscoElastic{E<:Elasto} <: Mechano end

abstract type InternalFibers end
abstract type ThermalLaw end

abstract type MultiPhysicalModel <: PhysicalModel end
abstract type ElectroMechano <: MultiPhysicalModel end
abstract type ThermoElectroMechano <: MultiPhysicalModel end
abstract type ElectroMechano{E,M} <: MultiPhysicalModel end
abstract type ThermoElectroMechano{T,E,M} <: MultiPhysicalModel end
abstract type ThermoMechano{T,M} <: MultiPhysicalModel end
abstract type ThermoElectro <: MultiPhysicalModel end
abstract type FlexoElectro <: MultiPhysicalModel end
abstract type MagnetoMechano <: MultiPhysicalModel end
abstract type InternalFibers end
abstract type ThermoElectro{E,M} <: MultiPhysicalModel end
abstract type FlexoElectro{EM} <: MultiPhysicalModel end
abstract type MagnetoMechano{G,M} <: MultiPhysicalModel end

include("KinematicModels.jl")

Expand Down
20 changes: 6 additions & 14 deletions src/PhysicalModels/ThermoElectroMechanicalModels.jl
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@

function initialize_state(obj::TEM, points::Measure) where {TEM<:ThermoElectroMechano}
function initialize_state(obj::ThermoElectroMechano, points::Measure)
initialize_state(obj.mechano, points)
end

function update_state!(obj::TEM, state, F, E, θ, args...) where {TEM<:ThermoElectroMechano}
function update_state!(obj::ThermoElectroMechano, state, F, E, θ, args...)
update_state!(obj.mechano, state, F, args...)
end

function update_time_step!(obj::TEM, Δt::Float64) where {TEM<:ThermoElectroMechano}
function update_time_step!(obj::ThermoElectroMechano, Δt::Float64)
update_time_step!(obj.thermo, Δt)
update_time_step!(obj.electro, Δt)
update_time_step!(obj.mechano, Δt)
end

struct ThermoElectroMechModel{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroMechano
struct ThermoElectroMechModel{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroMechano{T,E,M}
thermo::T
electro::E
mechano::M
Expand Down Expand Up @@ -53,7 +53,7 @@ struct ThermoElectroMechModel{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroM
end


struct ThermoElectroMech_Govindjee{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroMechano
struct ThermoElectroMech_Govindjee{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroMechano{T,E,M}
thermo::T
electro::E
mechano::M
Expand Down Expand Up @@ -117,7 +117,7 @@ struct ThermoElectroMech_Govindjee{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoEle
end


struct ThermoElectroMech_Bonet{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroMechano
struct ThermoElectroMech_Bonet{T<:Thermo,E<:Electro,M<:Mechano} <: ThermoElectroMechano{T,E,M}
thermo::T
electro::E
mechano::M
Expand Down Expand Up @@ -166,11 +166,3 @@ function Dissipation(obj::ThermoElectroMech_Bonet)
tm = ThermoMech_Bonet(obj.thermo, obj.mechano, obj.gv, obj.gd, obj.gvis)
Dissipation(tm)
end

# function Dissipation(obj::ThermoElectroMech_Bonet)
# gd, ∂gd, ∂∂gd = isochoric_law(obj.thermo)
# Dvis = Dissipation(obj.mechano)
# D(F, E, θ, X...) = gd(θ) * Dvis(F, X...)
# ∂D∂θ(F, E, θ, X...) = ∂gd(θ) * Dvis(F, X...)
# return(D, ∂D∂θ)
# end