Modules

ModuleSource FileDescription
mus_abortCriteria_modulemus_abortCriteria_module.f90

Musubi specific criteria to abort the simulation.

Read more…
mus_aux_modulemus_aux_module.f90
mus_auxField_modulemus_auxField_module.f90

This module contains routine to retrieve auxiliary field variables for getElement, getPoint, setupIndices and getValOfIndex. Auxilary field variables are: * density and velocity for fluid * species desity and velocity for multispecies * potential for poisson

mus_auxFieldVar_modulemus_auxFieldVar_module.f90

This module contains routine to retrieve auxiliary field variables for getElement, getPoint, setupIndices and getValOfIndex. Auxilary field variables are: * density and velocity for fluid * species desity and velocity for multispecies * potential for poisson

mus_bc_fluid_experimental_modulemus_bc_fluid_experimental_module.f90

Boundary condition treatment routines for fluid simulation

Read more…
mus_bc_fluid_modulemus_bc_fluid_module.f90

Boundary condition treatment routines for fluid simulation Details on implementation can be found in tem_bc_module

mus_bc_fluid_nonEqExpol_modulemus_bc_fluid_nonEqExpol_module.f90

Non-equilibrium extrapolatioon boundary condition treatment routines for fluid simulation. The boundary condition for straight boundary with qVal=0 is based on: Guo, Z., & Shi, B. (2002). "Non-equilibrium extrapolation method for velocity and pressure boundary conditions in the lattice Boltzmann method." Chinese Physics. The boundary condition for curved boundary is based on Guo, Z., Shi, B., & Zheng, C. (2002). An extrapolation method for boundary conditions in lattice Boltzmann method. Physics of Fluids, 14(May), 10–14.

Read more…
mus_bc_fluid_wall_modulemus_bc_fluid_wall_module.f90

Boundary condition wall treatment routines

Read more…
mus_bc_general_modulemus_bc_general_module.f90

This module contains general boundary routines

Read more…
mus_bc_header_modulemus_bc_header_module.f90

This module contains boundary type definitions, different boundary treatment types, abtract interface and routine to load boundary table from config file

Read more…
mus_bc_nernstPlanck_modulemus_bc_nernstPlanck_module.f90

Boundary condition treatment routines for Nernst-Planck equation

Read more…
mus_bc_passiveScalar_modulemus_bc_passiveScalar_module.f90

Boundary condition treatment routines for fluid simulation

Read more…
mus_bc_poisson_modulemus_bc_poisson_module.f90

Boundary condition treatment routines for Poisson equation

Read more…
mus_bc_species_modulemus_bc_species_module.f90

Boundary condition treatment routines for multispecies simulation

mus_bgk_modulemus_compute_bgk_module.f90

This module provides the definition and methods for BGK advection relaxation scheme.

mus_buffer_modulemus_buffer_module.f90

Module containing subroutines to prepare buffers for transformation of quantities (tracking) and the restart/tracking IO.

Read more…
mus_comm_modulemus_comm_module.f90

This module provides the definition and methods for musubi-specific communication. It includes the wrapper functions for the actual communication, which is defined in tem_comm_module.

mus_compute_nernstPlanck_modulemus_compute_nernstPlanck_module.f90

This module provides the definition and methods for BGK advection relaxation scheme.

mus_compute_Poisson_modulemus_compute_Poisson_module.f90

This module provides the definition and methods to solve poisson equation. author: Kannan Masilamani Implementation is based on: Luo, K., Wu, J., Yi, H., & Tan, H. (2016). International Journal of Heat and Mass Transfer Lattice Boltzmann modelling of electro-thermo-convection in a planar layer of dielectric liquid subjected to unipolar injection and thermal gradient. International Journal of Heat and Mass Transfer, 103, 832–846.

Read more…
mus_config_modulemus_config_module.f90

In this module, all parameter files are read in as lua script or a sample configuration is being loaded

Read more…
mus_connectivity_modulemus_connectivity_module.f90

This module contains routines related to neighbor connectivity

mus_construction_modulemus_construction_module.f90

\ref mus_construct "Creation of the data structures"

mus_control_modulemus_control_module.f90

In this module, the control structure for computing each time step is established.

Read more…
mus_d2q9_modulemus_compute_d2q9_module.f90

Routines and parameter definitions for the standard D2Q9 model

mus_d3q19_modulemus_compute_d3q19_module.f90

Routines and parameter definitions for the standard D3Q19 model

mus_d3q27_modulemus_compute_d3q27_module.f90

Routines and parameter definitions for the standard D3Q27 model

mus_debug_modulemus_debug_module.f90

Collection of debugging functions

mus_debug_tools_modulemus_debug_tools_module.f90

Collection of debugging functions for writing stuff to files

mus_derivedQuantities_module2mus_derivedQuantities_module.f90

This module provides functions for calculating macroscopic quantities

mus_derQuan_modulemus_derQuan_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables.

Read more…
mus_derQuanIncomp_modulemus_derQuanIncomp_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables for incompressible LBM models.\n Notice that only those quantities that related to density should have a formula which differs from normal LBM model.

Read more…
mus_derQuanIsothermAcEq_modulemus_derQuanIsothermAcEq_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities for the isothermal acoustic equations from the state variables

Read more…
mus_derQuanMSGas_modulemus_derQuanMSGas_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables multispecies.

Read more…
mus_derQuanMSLiquid_modulemus_derQuanMSLiquid_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables for multispecies liquid model.

Read more…
mus_derQuanNernstPlanck_modulemus_derQuanNernstPlanck_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables. The depending common interface between MUSUBI and ATELES is defined in the tem_derived_module. The functionality for accessing a variable from the state and evaluating a lua function are also provided in the tem_derived module. A Novel lattice boltzmann model for nernstPlanck equation author> Zhenhua Chai , Baochang Shi A Coupled Lattice Boltzmann method to solve Nernst -Planck Model for simulating Electro-Osmotic Flows public :: deriveSrc_electricField

mus_derQuanPhysics_modulemus_derQuanPhysics_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables in physical units.

Read more…
mus_derQuanPoisson_modulemus_derQuanPoisson_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables. The depending common interface between MUSUBI and ATELES is defined in the tem_derived_module. The functionality for accessing a variable from the state and evaluating a lua function are also provided in the tem_derived module. A Novel lattice boltzmann model for poisson equation author> Zhenhua Chai , Baochang Shi A Coupled Lattice Boltzmann method to solve Nernst -Planck Model for simulating Electro-Osmotic Flows

mus_derQuanPS_modulemus_derQuanPS_module.f90

This module provides the MUSUBI specific functions for calculating macroscopic quantities from the state variables.

Read more…
mus_derVarPos_modulemus_derVarPos_module.f90

This module contains the type defintion which stores position of all derive variables in global varSys.

Read more…
mus_directions_modulemus_directions_module.f90

This module contains parameters to address the stencil directions. These parameters are valid for all stencils, however, the direction q00 and q000 needs to be set on each use according to QQ.

mus_dynLoadBal_modulemus_dynLoadBal_module.f90
mus_eNRTL_modulemus_eNRTL_module.f90

This module contains an interface for external C++ code to compute liquid mixture property like thermodynamic factor and Maxwell-Stefan Diffusivity coefficients

mus_eNRTL_modulemus_eNRTL_dummy.f90

This module contains an interface for external C++ code to compute liquid mixture property like thermodynamic factor and Maxwell-Stefan Diffusivity coefficients

mus_field_modulemus_field_module.f90

This module contains information about all fields like fluid, species, temperature etc. This field type will be used for multispecies and passive scalar transport.

Read more…
mus_field_prop_modulemus_field_prop_module.f90

This module contains mus_field_prop_type and modules related to fiels properties.

Read more…
mus_flow_modulemus_flow_module.f90

Flow-related routines such as initialization of the flow field and parameters

Read more…
mus_fluid_modulemus_fluid_module.f90

This module keeps all information about the fluid

Read more…
mus_geom_modulemus_geom_module.f90

This module contains the definition of geometry type and routines to geometry information like mesh, boundary, immersed_boundary and restart

mus_geomIncr_modulemus_geomIncr_module.f90

This module provides functionality to perform geometry change depending on the flow properties. Fluidify/Solidify, proximity condition variable are supplied in the lua file. Checks are performed against those parameters and geometry is accordingly changed (an element solidified or fluidified)

Read more…
mus_geomIncrHead_modulemus_geomIncrHead_module.f90

This module contains the datatypes for the geometry increase table within the lua configuration file. It also contains the routines to load various variables, parameters from the lua file which are then used in performing geometry changes

mus_gradData_modulemus_gradData_module.f90

This module contains data types, function and routines for gradient computation.

Read more…
mus_hvs_aux_modulemus_hvs_aux_module.f90

Auxiliary functionality for musubi harvesting

mus_hvs_config_modulemus_hvs_config_module.f90

In this module, all parameter files are read in as lua script or a sample configuration is being loaded

Read more…
mus_hvs_construction_modulemus_hvs_construction_module.f90

mus_hvs_construct "Creation of the data structures" from the information in the configuration and from the mesh read from disk for the musubi harvesting

mus_IBM_modulemus_IBM_module.f90

This module contains datatypes and subroutines for the immersed boundary method (IBM).

Read more…
mus_initFluid_modulemus_initFluid_module.f90

This module contains routines which initiliaze advection relaxation and flow field for lbm model.

mus_initFluidIncomp_modulemus_initFluidIncomp_module.f90

This module contains routines which initiliaze advection relaxation and flow field for lbm incompressible model.

mus_initIsothermAcEq_modulemus_initIsothermAcEq_module.f90

This module contains routines which initiliaze advection relaxation and flow field for lbm model for acoustic equations.

mus_initLBMPS_modulemus_initLBMPS_module.f90

This module contains routines which assigns compute kernel for passive scalar model

mus_initMultispecies_modulemus_initMultispecies_module.f90

This module contains routines which initiliaze advection relaxation and flow field for multispecies lbm gas model and liquid model.

mus_initNernstPlanck_modulemus_initNernstPlanck_module.f90

This module contains routines which initiliaze advection relaxation and flow field for lbm incompressible model.

mus_initPoisson_modulemus_initPoisson_module.f90

This module contains routines which initiliaze advection relaxation and flow field for lbm incompressible model.

mus_interpolate_average_modulemus_interpolate_average_module.f90

Average Interpolation of flow quantities between different grid levels

mus_interpolate_compact_modulemus_interpolate_compact_module.f90

Interpolation of flow quantities between different grid levels

Read more…
mus_interpolate_d2q9_modulemus_interpolate_d2q9_module.f90

The routines defined here, fill up the ghost elements with valid data. Ghost elements are employed at grid level interfaces to provide valid pdf values to the neighboring fluid elements. This way, the solvers can act on elements of the same size only, treating the levels successively. Target elements are the ghost elements, which have to be filled with valid values. Source elements are the fluid elements from other levels, from where to take the input values for the interpolation. The target ghost elements on the target level have corresponding source fluid elements on the source level.

Read more…
mus_interpolate_d3q19_modulemus_interpolate_d3q19_module.f90

Interpolation of flow quantities between different grid levels

Read more…
mus_interpolate_d3q27_modulemus_interpolate_d3q27_module.f90

Interpolation of flow quantities between different grid levels

Read more…
mus_interpolate_debug_modulemus_interpolate_debug_module.f90

Interpolation of flow quantities between different grid levels

Read more…
mus_interpolate_header_modulemus_interpolate_header_module.f90

Interpolation header to load confiugration and type definition

mus_interpolate_linear_modulemus_interpolate_linear_module.f90

Linear Interpolation of flow quantities between different grid levels

Read more…
mus_interpolate_modulemus_interpolate_module.f90

The routines defined here, fill up the ghost elements with valid data. Ghost elements are employed at grid level interfaces to provide valid pdf values to the neighboring fluid elements. This way, the solvers can act on elements of the same size only, treating the levels successively. Target elements are the ghost elements, which have to be filled with valid values. Source elements are the fluid elements from other levels, from where to take the input values for the interpolation. The target ghost elements on the target level have corresponding source fluid elements on the source level.

Read more…
mus_interpolate_quadratic_modulemus_interpolate_quadratic_module.f90

Interpolation of flow quantities between different grid levels

Read more…
mus_interpolate_tools_modulemus_interpolate_tools_module.f90

Interpolation scheme tools

Read more…
mus_interpolate_verify_modulemus_interpolate_verify_module.f90

Interpolation scheme tools

Read more…
mus_isotherm_acEq_modulemus_compute_isotherm_acEq_module.f90

Routines and parameter definitions for the isothermal acoustic Eq D3Q19 model

mus_material_var_modulemus_material_var_module.f90

This module provides variable to extract material variable like viscosity, omega, etc.

mus_mesh_adaptation_modulemus_mesh_adaptation_module.f90

This module contains the code responsible for adaptively refining the mesh during run time.

mus_mixture_modulemus_mixture_module.f90

This module contains all information about fluid mixture

mus_moments_modulemus_moments_module.f90

This module deals with the calculation of moments from pdfs

mus_moments_type_modulemus_moments_type_module.f90

This module provides a data type for moment definition

mus_mrt_d3q27_modulemus_compute_mrt_d3q27_module.f90

This module provides the definition and methods for MRT advection relaxation scheme for D3Q27 stencil. This implementation is based on the paper K. Suga et al, "A D3Q27 multiple-relaxation-time lattice Boltzmann method for turbulent flows", Computers and Mathematics with Applications 69 (2015) 518-529 \n

Read more…
mus_mrt_modulemus_compute_mrt_module.f90

This module provides the definition and methods for MRT advection relaxation scheme. The LB equaton using MRT is f(t+dt,x+dx) = f - M^(-1) * S * ( (M*f) - m^(eq) )

Read more…
mus_mrtRelaxation_modulemus_mrtRelaxation_module.f90

This module contains functions for MRT relaxation paramater for different stencil layouts. NOTE: The order of relaxation entries is consistent with moments transformation matrix used in compute kernel. author: Kannan Masilamani

mus_MSGas_modulemus_compute_MSGas_module.f90

This module provides the definition and methods for multispecies gas bgk advection relaxation scheme.

mus_MSLiquid_modulemus_compute_MSLiquid_module.f90

This module provides the definition and methods for MSLiquid bgk advection relaxation scheme.

mus_nernstPlanck_modulemus_nernstPlanck_module.f90
mus_nonNewtonian_modulemus_nonNewtonian_module.f90

This module keeps all information about the nonNewtonian models. Contains routines which calculates non-Newtonian kinematic viscosity according to non-Newtonian model.

Read more…
mus_operation_var_modulemus_operation_var_module.f90

This module provides the routine for applying operators. Currently it is only implemented for 3D and needs to be extended to 2d

mus_param_modulemus_param_module.f90

This module provides the definition and methods for boundarys.

mus_pdf_modulemus_pdf_module.f90

Definitions for the main state and neighbor arrays

mus_physics_modulemus_physics_module.f90

This module contains data type and modules related to musubi lattice to physical unit convertion and vice versa. \n physics data type is global for all scheme, it is defined in the following format: \n

Read more…
mus_poisson_modulemus_poisson_module.f90
mus_ppInfo_modulemus_ppInfo.f90

Module to provide information about pre-processing settings of the current executable.

mus_program_modulemus_program_module.f90

This module contains data types and routines used by musubi main program i.e unifying routines for apesmate

mus_relaxationParam_modulemus_relaxationParam_module.f90

This module contains the data type for MRT.

Read more…
mus_restart_modulemus_restart_module.f90

This module provides the MUSUBI subroutines needed for the restart functionality.

Read more…
mus_scheme_header_modulemus_scheme_header_module.f90

This module contains scheme property type and module related to scheme prop

mus_scheme_layout_modulemus_scheme_layout_module.f90

scheme_layout module, providing the scheme_layout datatype and the functionality to read the lua files and to set the predefined stencils.

Read more…
mus_scheme_modulemus_scheme_module.f90

Definition of the datatypes for the scheme implementation.

Read more…
mus_scheme_type_modulemus_scheme_type_module.f90

This module contains the type definition(s) required in the scheme routines In addition depend type and condition type for geometry increase routine are defined. Compute kernel definition is also defined in this module

mus_Smagorinsky_modulemus_Smagorinsky_module.f90

This module contains function to compute eddy viscosity for Smagorinsky les turbulence model. author: Kannan Masilamani

mus_solSpecHelpers_modulemus_solSpecHelpers_module.f90

This module provides MUSUBI specific helper functions for extracting information from the solver specific character.

mus_source_modulemus_source_module.f90

Module containing subroutines for initialize Musubi source variables and update source terms

mus_source_var_modulemus_source_var_module.f90

Module containing subroutines for building MUSUBI specific source variables

Read more…
mus_species_modulemus_species_module.f90

This module contains mus_species_type and routines to load species table from config file.

mus_stateVar_modulemus_stateVar_module.f90

This module contains routine to retrieve state variables for getElement, getPoint, setupIndices and getValOfIndex

mus_statistics_modulemus_statistics_module.f90

In this module we collect routines and type definitions related to statistics for the runtime of the code.

mus_test_modulemus_compute_test_module.f90

This module provides the definition and methods for BGK advection relaxation scheme.

mus_time_modulemus_time_module.f90

This module contains time definition needed for musubi

mus_timer_modulemus_timer_module.f90

This module contains data types and routines used to measure time spend on musubi routines. author: Kannan Masilamani

mus_tools_modulemus_tools_module.f90

Some generic handy check routines to check the properties of the flow field and the current run

Read more…
mus_tracking_modulemus_tracking_module.f90

This module provides the MUSUBI subroutines needed for the tracking functionality.

mus_transport_var_modulemus_transport_var_module.f90

Module containing subroutines for building MUSUBI specific transport variables to use in compute kernels and source update

mus_turb_viscosity_modulemus_turb_viscosity_module.f90

This module assigns function pointer to calculate turbulent viscosity according to turbulence model and scheme definition

mus_turbulence_modulemus_turbulence_module.f90

This module contains data types, function and routines for turbulence model. Especially the routine to compute turbulent eddy viscosity for different turbulence model

Read more…
mus_turbulence_var_modulemus_turbulence_var_module.f90

This module provides variable to extract when turbulence model is active

mus_variable_modulemus_variable_module.f90

This module provides all possible 'pure variables' (= no prefixes) for a given kind of simulation.

Read more…
mus_varSys_modulemus_varSys_module.f90

This module contains solver data type with pointers to musubi mus_scheme_type, mus_param_type, etc which are required for variable operation method data. Also contains all general routines for the variable system.

mus_Vreman_modulemus_Vreman_module.f90

This module contains function to compute eddy viscosity using Vreman LES turbulence model. Vreman, A. W. (2004). An eddy-viscosity subgrid-scale model for turbulent shear flow: Algebraic theory and applications. Physics of Fluids, 16(10), 3670–3681. model. author: Kannan Masilamani

mus_WALE_modulemus_WALE_module.f90

This module contains function to compute eddy viscosity for Wall-Adapting Local Eddy-Viscosity turbulence model. This implementation follows the LES described by Weickert et al. Weickert, M., Teike, G., Schmidt, O., & Sommerfeld, M. (2010). Investigation of the LES WALE turbulence model within the lattice Boltzmann framework. Computers and Mathematics with Applications, 59(7), 2200–2214. author: Kannan Masilamani

mus_weights_modulemus_weights_module.f90

This module include the routine required for element wie dumping weight for better load balancing. Dump weights at end of simulation if 'write_weights' is defined in the config file. Weights are based on element wise time measurements