-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMeshlessMultiphysics.jl
More file actions
104 lines (78 loc) · 2.23 KB
/
MeshlessMultiphysics.jl
File metadata and controls
104 lines (78 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
module MeshlessMultiphysics
using CUDA
using LinearAlgebra
using LoopVectorization
using FileIO
using Meshes: 𝔼, Manifold, ∠
using WhatsThePoint
using CoordRefSystems
using Accessors
using ProgressMeter
using Unitful
using StaticArrays
using LinearAlgebra
using RadialBasisFunctions
using SparseArrays
using OrdinaryDiffEq
using LinearSolve
using OhMyThreads
using WriteVTK
include("utils.jl")
#################### Abstract Types ####################
abstract type AbstractModel end
#################### Boundary Conditions ####################
include("boundary_conditions/boundary_derivatives.jl")
include("boundary_conditions/boundary_conditions.jl")
export AbstractBoundaryCondition
#################### Domains ####################
include("domain.jl")
export Domain
include("boundary_conditions/walls.jl")
export Wall
include("boundary_conditions/fluids.jl")
export VelocityInlet, PressureOutlet
include("boundary_conditions/energy.jl")
export Adiabatic, Temperature, HeatFlux, Convection
export make_bc, make_bc!
#################### Models ####################
abstract type Fluid <: AbstractModel end
abstract type Solid <: AbstractModel end
export AbstractModel
export AbstractViscosity, NewtonianViscosity, CarreauYasudaViscosity
include("models/time.jl")
include("models/fluids.jl")
export IncompressibleNavierStokes
include("models/energy.jl")
export SolidEnergy
export make_f, make_system
export _num_vars
#################### Solvers ####################
include("solve.jl")
export MultiphysicsProblem
#################### Operators ####################
abstract type AbstractOperator end
export AbstractOperator
include("upwinding.jl")
export upwind
#################### IO ####################
include("io.jl")
export exportvtk, savevtk!, save
# test funcs
export node_drop, findmin_turbo
export cov, make_memory_contiguous, ranges_from_permutation, permute!
# utils
export findmin_turbo
function __init__()
threads = Threads.nthreads()
if threads > 1
@info "MeshlessMultiphysics will use $threads threads"
end
if CUDA.has_cuda()
@info "CUDA-enabled GPU(s) detected:"
for dev in CUDA.devices()
@info "$dev: $(CUDA.name(dev))"
end
CUDA.allowscalar(false)
end
end
end