pub use dem_atom;
pub use dem_atom_insert;
pub use dem_granular;
pub use dem_gravity;
pub use dem_wall;
pub use md_lattice;
pub use md_lj;
pub use md_measure;
pub use md_thermostat;
pub use mddem_core;
pub use mddem_fixes;
pub use mddem_neighbor;
pub use mddem_print;
pub use mddem_verlet;
use mddem_app::prelude::*;
pub struct CorePlugins;
impl PluginGroup for CorePlugins {
fn build(self) -> PluginGroupBuilder {
let builder = PluginGroupBuilder::start::<Self>().add(mddem_core::InputPlugin);
builder
.add(mddem_core::CommunicationPlugin)
.add(mddem_core::DomainPlugin::default())
.add(mddem_neighbor::NeighborPlugin {
style: mddem_neighbor::NeighborStyle::Bin,
})
.add(mddem_core::GroupPlugin)
.add(mddem_core::RunPlugin)
.add(mddem_verlet::VelocityVerletPlugin)
.add(mddem_print::PrintPlugin)
}
}
pub struct LJDefaultPlugins;
impl PluginGroup for LJDefaultPlugins {
fn build(self) -> PluginGroupBuilder {
PluginGroupBuilder::start::<Self>()
.add(md_lattice::LatticePlugin)
.add(md_lj::LJForcePlugin)
.add(md_thermostat::NoseHooverPlugin)
.add(md_measure::MeasurePlugin)
}
}
pub mod prelude {
pub use crate::{CorePlugins, LJDefaultPlugins};
pub use dem_atom::{DemAtomPlugin, DemConfig, MaterialTable};
pub use dem_atom_insert::{DemAtomInsertPlugin, ParticlesConfig};
pub use dem_granular::GranularDefaultPlugins;
pub use dem_gravity::{GravityConfig, GravityPlugin};
pub use dem_wall::{WallDef, WallPlane, WallPlugin, Walls};
pub use md_lattice::{LatticeConfig, LatticePlugin};
pub use md_lj::{LJConfig, LJForcePlugin, LJTailCorrections, VirialAccumulator};
pub use md_measure::{MeasureConfig, MeasurePlugin};
pub use md_thermostat::{LangevinConfig, LangevinPlugin, LangevinState, NoseHooverPlugin, NoseHooverState, ThermostatConfig};
pub use mddem_fixes::{AddForceDef, FixesPlugin, FixesRegistry, FreezeDef, MoveLinearDef, SetForceDef};
pub use mddem_app::prelude::*;
pub use mddem_core::*;
pub use mddem_neighbor::*;
pub use mddem_print::*;
pub use mddem_scheduler::prelude::*;
pub use mddem_verlet::*;
}