1pub use dem_atom;
6pub use dem_atom_insert;
7pub use dem_granular;
8pub use dem_gravity;
9pub use dem_wall;
10pub use md_lattice;
11pub use md_lj;
12pub use md_measure;
13pub use md_thermostat;
14pub use mddem_core;
15pub use mddem_fixes;
16pub use mddem_neighbor;
17pub use mddem_print;
18pub use mddem_verlet;
19
20use mddem_app::prelude::*;
21
22pub struct CorePlugins;
47
48impl PluginGroup for CorePlugins {
49 fn build(self) -> PluginGroupBuilder {
50 let builder = PluginGroupBuilder::start::<Self>().add(mddem_core::InputPlugin);
51
52 builder
53 .add(mddem_core::CommunicationPlugin)
54 .add(mddem_core::DomainPlugin::default())
55 .add(mddem_neighbor::NeighborPlugin {
56 style: mddem_neighbor::NeighborStyle::Bin,
57 })
58 .add(mddem_core::GroupPlugin)
59 .add(mddem_core::RunPlugin)
60 .add(mddem_verlet::VelocityVerletPlugin)
61 .add(mddem_print::PrintPlugin)
62 }
63}
64
65pub struct LJDefaultPlugins;
73
74impl PluginGroup for LJDefaultPlugins {
75 fn build(self) -> PluginGroupBuilder {
76 PluginGroupBuilder::start::<Self>()
77 .add(md_lattice::LatticePlugin)
78 .add(md_lj::LJForcePlugin)
79 .add(md_thermostat::NoseHooverPlugin)
80 .add(md_measure::MeasurePlugin)
81 }
82}
83
84pub mod prelude {
85 pub use crate::{CorePlugins, LJDefaultPlugins};
86 pub use dem_atom::{DemAtomPlugin, DemConfig, MaterialTable};
87 pub use dem_atom_insert::{DemAtomInsertPlugin, ParticlesConfig};
88 pub use dem_granular::GranularDefaultPlugins;
89 pub use dem_gravity::{GravityConfig, GravityPlugin};
90 pub use dem_wall::{WallDef, WallPlane, WallPlugin, Walls};
91 pub use md_lattice::{LatticeConfig, LatticePlugin};
92 pub use md_lj::{LJConfig, LJForcePlugin, LJTailCorrections, VirialAccumulator};
93 pub use md_measure::{MeasureConfig, MeasurePlugin};
94 pub use md_thermostat::{LangevinConfig, LangevinPlugin, LangevinState, NoseHooverPlugin, NoseHooverState, ThermostatConfig};
95 pub use mddem_fixes::{AddForceDef, FixesPlugin, FixesRegistry, FreezeDef, MoveLinearDef, SetForceDef};
96 pub use mddem_app::prelude::*;
97 pub use mddem_core::*;
98 pub use mddem_neighbor::*;
99 pub use mddem_print::*;
100 pub use mddem_scheduler::prelude::*;
101 pub use mddem_verlet::*;
102}