UAMMD Logo

First steps

  • Quick Start
    • UAMMD as a standalone framework
    • UAMMD as a library
    • Extending or adapting UAMMD
    • Additional notes
  • Compiling UAMMD
    • DEBUG COMPILATION
    • AVAILABLE MACROS
      • Compiling tests and examples
      • Integration with CMake’s find_package
      • Integration with CMake’s FetchContent
      • Additional CMake options
  • Simulation file
  • Frequently Asked Questions
    • How can I access the different properties of each particle?
    • How can I perform a simple Brownian Dynamics simulation?
    • What is all this particle reordering thing?
    • Why are the “force” container elements of type real4?
    • I need particles to have the X property not provided by UAMMD
    • How do I use a neighbour list?
    • I have an object (such as an Interactor) that needs to know when some state variable changes (temperature, simulation time, box size…)
    • I need a module acting only on a subset of particles
  • Examples
    • basic_concepts
    • advanced
    • generic_md
    • integration_schemes
    • interaction_modules
    • uammd_as_a_library
    • misc
    • Compiling the examples
  • Tests
  • Contact

Base modules

  • System
    • uammd::System
      • System()
      • System()
      • finish()
      • rng()
      • getargc()
      • getargv()
      • getSystemParameters()
      • log()
      • log()
      • getTemporaryDeviceAllocator()
    • uammd::SystemParameters
      • device
      • cuda_arch
    • Utilities provided by System
      • Random numbers
        • rng()
      • Logging
        • LogLevel
      • Cached memory allocation
        • allocator
        • thrust_allocator
        • Usage example:
    • System options
  • ParticleData
    • Getting a handle get a certain property
      • uammd::access
        • location
        • mode
      • uammd::property_ptr
        • Iterator
        • raw()
        • end()
        • begin()
        • size()
        • location()
      • Example
    • List of available properties
      • ALL_PROPERTIES_LIST
    • Particle id assignation
      • getIdOrderedIndices()
    • Advanced usage
      • Triggering a sorting
        • hintSortByHash()
      • Signals
        • signal
        • connection
        • Saving and restoring from a file
  • Integrator
    • uammd::Integrator
      • Integrator()
      • forwardTime()
      • sumEnergy()
      • addInteractor()
      • getInteractors()
      • addUpdatable()
      • getUpdatables()
      • name
      • pd
      • pg
      • sys
      • interactors
      • updatables
    • Usage
      • Creation
      • Using an already available Integrator
    • Example: Methods available in any Integrator
    • Writing a new Integrator module
      • A basic Integrator
  • Interactor
    • uammd::Interactor
      • Interactor()
      • sum()
      • getName()
      • name
      • pd
      • pg
      • sys
      • uammd::Interactor::Computables
        • force
        • energy
        • virial
        • stress
    • Adding new computables:
      • EXTRA_COMPUTABLES
    • Using an already available Interactor:
    • Creating a new Interactor
      • A minimal example of an Interactor:
    • Available Interactors

Concepts

  • Simulation domain
    • Box
      • Box::Box()
      • Box::apply_pbc()
      • Box::setPeriodicity()
      • Box::isPeriodicX()
      • Box::isPeriodicY()
      • Box::isPeriodicZ()
      • Box::boxSize
    • Example
  • Neighbour Lists
    • NeighbourList
      • NeighbourList::NeighbourList()
      • NeighbourList::NeighbourList()
      • NeighbourList::update()
      • NeighbourList::transverseList()
      • NeighbourList::getNameList()
      • NeighbourList::getNeighbourContainer()
    • Example
    • Available neighbour lists
      • CellList
        • CellList
        • CellListData
        • CellListBase
        • Example
      • VerletList
        • VerletList
        • VerletListData
        • VerletListBase
        • Example
      • Linear Bounding Volume Hierarchy list (LBVH)
        • Example
    • The Neighbour Container interface
      • NeighbourContainer
        • NeighbourContainer::NeighbourContainer()
        • NeighbourContainer::set()
        • NeighbourContainer::begin()
        • NeighbourContainer::end()
        • NeighbourContainer::getSortedPositions()
        • NeighbourContainer::getGroupIndexes()
      • Example
  • Immersed Boundary Method
    • Already defined kernels
      • 3-point Peskin kernel
        • threePoint
      • 4-point Peskin kernel
        • fourPoint
      • 6-point Peskin kernel
        • sixPoint
      • Barnett-Magland (BM) kernel
        • BarnettMagland
      • Gaussian kernel
        • Gaussian
    • Defining a new kernel
      • IBMKernel
        • IBMKernel::getSupport()
        • IBMKernel::getMaxSupport()
        • IBMKernel::phiX()
        • IBMKernel::phiY()
        • IBMKernel::phiZ()
        • IBMKernel::phi()
      • Example
    • Usage in UAMMD
      • IBM
        • IBM::IBM()
        • IBM::spread()
        • IBM::gather()
      • Example
    • Advanced functionality
      • Changing the default indexing of the grid data
        • IBM()
        • Index3D
        • Example
      • Using a non-default Grid
      • Modify how the multiplication of the kernel and a marker value is performed when spreading (or the kernel and a grid value when interpolating).
        • spread()
        • WeightComputation
        • Example
      • Modifying the quadrature weights of each grid point in the gather operation
        • gather()
        • QuadratureWeight
        • Example
  • Transverser
    • Transverser
      • Transverser::compute()
      • Transverser::set()
      • Transverser::zero()
      • Transverser::getInfo()
      • Transverser::accumulate()
      • Transverser::prepare()
    • Example
  • Potential
    • Potential
      • Potential::getCutOff()
      • Potential::getTransverser()
      • Potential::ForceEnergyVirial
        • Potential::ForceEnergyVirial::force
        • Potential::ForceEnergyVirial::energy
        • Potential::ForceEnergyVirial::virial
    • Example
  • ParticleGroup
    • ParticleGroup
      • ParticleGroup::getParticleData()
      • ParticleGroup::clear()
      • ParticleGroup::addParticlesById()
      • ParticleGroup::addParticlesByCurrentIndex()
      • ParticleGroup::getIndicesRawPtr()
      • ParticleGroup::getIndexIterator()
      • ParticleGroup::getGroupIndexMaskRawPtr()
      • ParticleGroup::getGroupIndexMask()
      • ParticleGroup::getPropertyIterator()
      • ParticleGroup::getNumberParticles()
      • ParticleGroup::getName()
    • Creation
      • ParticleGroup()
      • ParticleGroup()
      • ParticleGroup()
      • Example
    • Particle selectors
      • ParticleSelector
        • ParticleSelector::isSelected()
      • Example
      • Available particle selector
        • All
        • None
        • IDRange
        • Domain
        • Type
    • Usage with UAMMD modules
    • General usage

Available Integrators

  • Molecular Dynamics
    • Usage
  • Langevin Dynamics
    • Usage
  • Dissipative Particle Dynamics
    • Usage
  • Smoothed Particle Hydrodynamics
    • Usage
  • Brownian Dynamics
    • Brownian Dynamics integrators
      • EulerMaruyama
      • MidPoint
      • AdamsBashforth
      • Leimkuhler
    • Usage
  • Brownian Hydrodynamics
    • Open boundary BDHI solvers
      • Cholesky
        • Usage
      • Lanczos
        • Usage
    • Triply periodic BDHI solvers
      • Force Coupling Method
        • Usage
        • Advanced functionality
      • Positively Split Ewald
        • Usage
      • Fluctuating Immersed Boundary
        • Usage
    • Doubly periodic BDHI solvers
      • Quasi two-dimensional
        • Quasi2DHydrodynamicKernel
        • Usage
      • Doubly Periodic Stokes (DPStokes)
        • References
        • uammd::DPStokesSlab_ns::DPStokes
        • uammd::DPStokesSlab_ns::DPStokesIntegrator
        • WallMode
  • Fluctuating Hydrodynamics
    • About Staggered grids
    • Compressible Inertial Coupling Method
      • Boundary conditions via ghost cells
      • Usage
      • Walls
        • ICMZWalls
      • FAQ
    • Incompressible Inertial Coupling Method
      • Usage

Available Interactors

  • External Forces
    • Usage
      • External potential interface
        • ForceEnergy
      • Creating the Interactor
  • Bonded Forces
    • Usage
    • Bond file format
      • Example: The bond file for a single harmonic bond between two particles
    • Defining a new bond potential
      • BondPotential
        • BondPotential::BondInfo
        • BondPotential::compute()
        • BondPotential::readBond()
      • ComputeType
        • ComputeType::force
        • ComputeType::energy
        • ComputeType::virial
    • Available bond potentials
      • Pair bonds
        • Harmonic
        • FENE
      • Angular bonds
        • Angular
      • Dihedral (torsional) bonds
        • FourierLAMMPS
        • Torsional
  • Pair Forces
    • Usage
  • Electrostatics
    • Triply periodic boundary conditions
      • Usage
    • Doubly periodic boundary conditions
      • Usage
        • Providing the surface charges

Other concepts and utilities

  • ParameterUpdatable
    • ParameterUpdatable
    • Usage
    • Adding a ParameterUpdatable to an Integrator
    • Available parameters
    • Advanced usage
  • InputFile
    • InputFile
      • InputFile::InputFile()
      • InputFile::getOption()
      • InputFile::OptionType
        • InputFile::OptionType::Optional
        • InputFile::OptionType::Required
    • File format
    • Usage
  • Particle Sorter
    • ParticleSorter
      • ParticleSorter::updateOrderWithCustomHash()
      • ParticleSorter::updateOrderByCellHash()
      • ParticleSorter::updateOrderById()
      • ParticleSorter::applyCurrentOrder()
      • ParticleSorter::getSortedIndexArray()
      • ParticleSorter::getSortedHashes()
      • ParticleSorter::getIndexArrayById()
    • Example
  • Boundary Value Problem (BVP) Solver
    • Usage
      • BatchedBVPHandler
        • BatchedBVPHandler::BatchedBVPHandler()
        • BatchedBVPHandler::getGPUSolver()
      • BatchedBVPGPUSolver
        • BatchedBVPGPUSolver::solve()
      • BoundaryCondition
        • BoundaryCondition::getFirstIntegralFactor()
    • Aliases for Real and Complex Types
      • Example
  • Fast Chebyshev Transform
    • Theory
    • Functions for the FCT in UAMMD
      • fourierChebyshevTransform3DCufft()
      • chebyshevTransform1DCufft()
      • inverseFourierChebyshevTransform3DCufft()
      • inverseChebyshevTransform1DCufft()
      • chebyshevTransform3DCufft()
      • inverseChebyshevTransform3DCufft()
  • Lanczos Algorithm
    • Solver
      • Solver::Solver()
      • Solver::run()
      • Solver::runIterations()
      • Solver::setIterationHardLimit()
      • Solver::getLastRunRequiredSteps()
    • MatrixDot
      • MatrixDot::setSize()
      • MatrixDot::operator()()
      • MatrixDot::m_size
    • Examples
  • Programming Tools
    • Pointers and memory addresses
      • Smart Pointers
        • shared_ptr
        • Example
    • Structures
      • Functor
    • SFINAE
  • Vector types
    • real
    • real2
    • real3
    • real4
    • Example
  • Random number generation with Saru
    • Saru
      • Saru::Saru()
      • Saru::Saru()
      • Saru::Saru()
      • Saru::f()
      • Saru::d()
      • Saru::gf()
      • Saru::gd()
      • Saru::u32()
    • Example
  • Containers
    • Uninitialized cached vector
      • uninitialized_cached_vector
    • Managed allocator
      • managed_vector
  • Execution policy
    • Example
UAMMD
  • Search


© Copyright 2025, Raul P. Pelaez.

Built with Sphinx using a theme provided by Read the Docs.