-
Notifications
You must be signed in to change notification settings - Fork 5
Electromechanics #225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Electromechanics #225
Conversation
termi-official
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments
| [sources] | ||
| OrdinaryDiffEqOperatorSplitting = {url = "https://github.com/SciML/OrdinaryDiffEqOperatorSplitting.jl.git", rev = "main"} | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| [sources] | |
| OrdinaryDiffEqOperatorSplitting = {url = "https://github.com/SciML/OrdinaryDiffEqOperatorSplitting.jl.git", rev = "main"} |
| OrdinaryDiffEqCore = "1" | ||
| OrdinaryDiffEqLowOrderRK = "1.2.0" | ||
| OrdinaryDiffEqOperatorSplitting = "0.1" | ||
| OrdinaryDiffEqOperatorSplitting = "0.2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| OrdinaryDiffEqOperatorSplitting = "0.2" | |
| OrdinaryDiffEqOperatorSplitting = "0.2.1" |
| [sources] | ||
| OrdinaryDiffEqOperatorSplitting = {url = "https://github.com/SciML/OrdinaryDiffEqOperatorSplitting.jl.git", rev = "main"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| [sources] | |
| OrdinaryDiffEqOperatorSplitting = {url = "https://github.com/SciML/OrdinaryDiffEqOperatorSplitting.jl.git", rev = "main"} |
| return semidiscrete_problem | ||
| end | ||
|
|
||
| function Thunderbolt.semidiscretize(coupled_model::ElectroMechanicalCoupledModel, discretizations::Tuple, meshes::Tuple{<:Thunderbolt.AbstractGrid, <:Thunderbolt.AbstractGrid}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add some annotation that this semidiscretizes splits the model? E.g. PhyiscalSplit{Elec....}?
| ep_index::Int | ||
| mech_index::Int |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do these indices refer to?
| function OS.backward_sync_external!(outer_integrator::OS.OperatorSplittingIntegrator, inner_integrator::DiffEqBase.DEIntegrator, sync::ElectroMechanicalSynchronizer) # Tying holds a buffer for the 3D problem with some meta information about the 0D problem | ||
| u_mech_flat = inner_integrator.u | ||
| u_mech = sync.cache.u_mech | ||
| dim = Ferrite.getrefdim(Ferrite.getfieldinterpolation(inner_integrator.f.dh, (1,1))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we relax this to not query the first sdh?
| ∇u_mech.data .= Ref(diagm(Tensor{2,dim}, 1.0)) .+ ∇u_mech.data | ||
| I4_mech = sync.cache.I4_mech | ||
| proj = L2Projector(dh.grid) | ||
| for sdh in dh.subdofhandlers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we query the relevant subdofhandlers here?
| end | ||
| I4_vecs = sync.cache.I4_vecs | ||
| cell_idx = 1 | ||
| for sdh in dh.subdofhandlers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we query the relevant subdofhandlers here?
| function OS.forward_sync_external!(outer_integrator::OS.OperatorSplittingIntegrator, inner_integrator::DiffEqBase.DEIntegrator, sync::ElectroMechanicalSynchronizer) | ||
| # Tying holds a buffer for the 3D problem with some meta information about the 0D problem | ||
| calcium_field_coeff = inner_integrator.cache.inner_solver_cache.op.integrator.volume_model.material_model.contraction_model.calcium_field | ||
| calcium_state_idx = get_calcium_state_idx(outer_integrator.subintegrator_tree[1][2].f.ode) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we query the indices from sync?
| function ElectroMechanicalSynchronizer(transfer_op_EP_Mech, transfer_op_Mech_EP) | ||
| qrc=Thunderbolt.QuadratureRuleCollection(1) | ||
| dh = transfer_op_EP_Mech.dh_to # mechanical dh | ||
| dim = Ferrite.getrefdim(Ferrite.getfieldinterpolation(dh, (1,1))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we relax this to not query the first sdh?
No description provided.