рд╕реАрдПрдлрдбреА 3 рдбреА: рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдиреА рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░





рдкрд░рд┐рдЪрдп


CFD (рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рддрд░рд▓ рдЧрддрд┐рдХреА) - рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рджреНрд░рд╡ рдЧрддрд┐рдХреАред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд░рд▓ рдкрджрд╛рд░реНрдереЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░рд▓ рдкрджрд╛рд░реНрде (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рд╣рдж, рддреЗрд▓ - рдпреЗ рд╕рднреА рддрд░рд▓ рдкрджрд╛рд░реНрде рд╣реИрдВ)ред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдПрдХ рдЦреБрд▓реА рд╕рддрд╣ рдФрд░ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдиреА рдХрд╛ рдПрдХ 2 рдбреА рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (3 рдбреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ + рд╕реНрд░реЛрдд рдХреЛрдб рдЙрдкрд▓рдмреНрдз рд╣реИрдВ)ред
рдкрд╛рдиреА рдХреА рд╕рддрд╣ рд╣рд╡рд╛ рд╕реЗ рдкрд╛рдиреА рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реАрдорд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд▓рд╣рд░реЛрдВ, рдмреВрдВрджреЛрдВ рдЖрджрд┐ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдареАрдХ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреА рдХрдореА рд╣реИред рдореБрдЭреЗ рдЬреЛ рдХреБрдЫ рднреА рдорд┐рд▓рд╛ рд╡рд╣ рдпрд╛ рддреЛ рдлреЛрд░рдЯреНрд░рд╛рди рдкрд░ рдерд╛, рдпрд╛ рдХреЗрд╡рд▓ 2 рдбреА, рдпрд╛ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рддреЛ, рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:


рдЧрдгрдирд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореИрдВрдиреЗ рдирд╡рд┐рдпрд░-рд╕реНрдЯреЛрдХреНрд╕ рд╕рдореАрдХрд░рдгреЛрдВ (рд╕рд╛рде рд╣реА рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ) рдХреА рд╢реБрд░реБрдЖрдд рдХреАред
рдпрд╣ рдПрдХ рдЪрд┐рдкрдЪрд┐рдкрд╛ рдЕрдкреВрд░реНрдг рджреНрд░рд╡ рдХреА рдЧрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрдВрд╢рд┐рдХ рдЕрдВрддрд░ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдпрд╣рд╛рдБ рдЕрддреБрд▓рдиреАрдп рд╢рдмреНрдж рдЯрд┐рдХ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рддрд░рд▓ рдкрджрд╛рд░реНрде, рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрд╕рдВрдЧрдд рд╣реИрдВред рдЪрд┐рдкрдЪрд┐рдкрд╛рд╣рдЯ рдХрд╛ рдорддрд▓рдм рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдгреЛрдВ рдХреЗ рдмреАрдЪ рдШрд░реНрд╖рдг рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдмрд┐рдЦрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЧреИрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рдкреВрд░реА рдорд╛рддреНрд░рд╛ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред рддрд░рд▓ рдХрдг рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдПрдХ рд╕рд╛рде рдЫрдбрд╝реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдореЗрд░реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ, рдореИрдВрдиреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ ...

рд╣рд╛рдЗрдбреНрд░реЛрдбрд╛рдпрдирд╛рдорд┐рдХ рд╕рдореАрдХрд░рдг


рддреЛ, рдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдп (рд╡реЗрдХреНрдЯрд░) рд░реВрдк рдореЗрдВ рдореВрд▓ рдирд╡рд┐рдпрд░-рд╕реНрдЯреЛрдХреНрд╕ рд╕рдореАрдХрд░рдг рд╣реИрдВ:

рдпрд╣рд╛рдВ:

рд╕рдореАрдХрд░рдгреЛрдВ рдХрд╛ рдкрд╣рд▓рд╛ рдЧрддрд┐ рдХрд╛ рд╕рдореАрдХрд░рдг рд╣реИ, рджреВрд╕рд░рд╛ рдирд┐рд░рдВрддрд░рддрд╛ рд╕рдореАрдХрд░рдг рд╣реИред
рдЧрддрд┐ рдХрд╛ рд╕рдореАрдХрд░рдг рдиреНрдпреВрдЯрди рдХреЗ рд╕рдореАрдХрд░рдг рдорд╛ = F рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рджрд╛рдИрдВ рдУрд░ рд╣реИ - рддрд░рд▓ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╢рдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдпреЛрдЧ - рдпрд╣ рджрдмрд╛рд╡, рдкреНрд░рд╕рд╛рд░, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╣реИ ...

2 рдбреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдореАрдХрд░рдг рдЗрд╕ рдлреЙрд░реНрдо рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ (рдпрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЖрдпрд╛рдорд╣реАрди рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):



рдЧрддрд┐ рдХреЗ рд╕рдореАрдХрд░рдг рдХреЛ рдЕрдм 2 рд╕рдореАрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - 2x рд╡реЗрдЧ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП - рдпреВ рдФрд░ рд╡реАред
рдирдП рдЧреБрдгрд╛рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд░реА рд░реЗрдиреЙрд▓реНрдбреНрд╕ рд╕рдВрдЦреНрдпрд╛ рд╣реИ (рдпрд╣ рддрдм рдирд┐рдХрд▓рд╛ рдЬрдм рд╣рдордиреЗ рдЖрдпрд╛рдо рд░рд╣рд┐рдд рдЪрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛), рдЬреЛ рддреБрд░рдВрдд 2 рдкрд┐рдЫрд▓реЗ рдЧреБрдгрд╛рдВрдХ - рдЧреБрдгрд╛рдВрдХ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдШрдирддреНрд╡ рдФрд░ рдЪрд┐рдкрдЪрд┐рдкрд╛рд╣рдЯред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдиреА рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ - рдЬреИрд╕реЗ рд╢рд╣рдж рдпрд╛ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдиреАред рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд░реЗ, рдЙрддрдирд╛ рд╣реА рд╕рдорд╛рди рддрд░рд▓ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдиреА рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред
рдХреЛрд╖реНрдардХ рдореЗрдВ, рдпрд╣ рдПрдХ рддрд░рд▓ (рдпрд╛ рдкреНрд░рд╕рд╛рд░) рдХреЗ рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣рдорд╛рд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рджрд╛рдИрдВ рдУрд░ рд╢реЗрд╖ рд╢рд░реНрддреЗрдВ (рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЛ рдЫреЛрдбрд╝рдХрд░) рд╕рдВрд╡рд╣рди рд╣реИрдВред рдмрд╛рдПрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ - рдЧрддрд┐ рдФрд░ рджрдмрд╛рд╡ред

рдЕрдЧрд▓рд╛, рдореИрдВрдиреЗ рдЗрди рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдХрд┐рдпрд╛:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрд╡рд╣рди рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рддрд░рд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдереЛрдбрд╝рд╛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реЗ рдкрд░ рдпрд╣ рдиреЗрддреНрд░рд╣реАрди рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИред рд╕рдВрд╡рд╣рди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рдлрд╛рдпрджреЗ рджреЗрддреА рд╣реИ - рдЧреИрд░-рд░реИрдЦрд┐рдХрддрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд╕реНрдерд┐рд░рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕рдордп рдХрджрдо рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдВрд╡рд╣рди рднреА рдЖрд╡рд╢реНрдпрдХ рдЧрдгрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рдВрдЧрд╛ рд╢рдмреНрдж рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрд╡рд╣рди рдХреЛ рдареАрдХ рд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬреЛ рдмреЛрдЭрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред

рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ рдирд╛рдордХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рд╡рд┐рд╖рдп рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИред рдкреБрд╕реНрддрдХ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рдЕрд╡рд▓реЛрдХрди рдХреЗ рддрд╣рдд рдХрдВрдкреНрдпреВрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП Bridson R. рджреНрд░рд╡ рд╕рд┐рдореБрд▓реЗрд╢рдиред
рдФрд░ рдлрд┐рд░ рддрд░рд▓ рдЧрддрд┐рдХреА рдореЗрдВ рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рд╕рд┐рдореБрд▓реЗрд╢рди Griebel M Dornseifer T Neunhoeffer T SIAM 1998

рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рднрд╛рдЬрди рд╕рдореАрдХрд░рдг рд╕рдорд╛рдзрд╛рди рдпреЛрдЬрдирд╛ рд╣реИ:



рд╕рдордп рдХрджрдо рдХреЗ рд▓рд┐рдП, рдпреВрд▓рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рднреА рд╣рдо рджрдмрд╛рд╡ рдХрдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗрдЧреЛрдВ рдПрдл рдФрд░ рдЬреА рдХреА рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдЧрдгрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрди рд╡реЗрдЧреЛрдВ, рдЦрд╛рддреЗ рдореЗрдВ рджрдмрд╛рд╡ рдирд╣реАрдВ рд▓реЗрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд░рдВрддрд░рддрд╛ рд╕рдореАрдХрд░рдг рдХреЛ рднреА рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдореБрд╢реНрдХрд┐рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рджрдмрд╛рд╡ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореАрдХрд░рдг рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░рдВрддрд░рддрд╛ рд╕рдореАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдПрдл рдФрд░ рдЬреА рд╕реЗ рдЗрд╕ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдирдпрд╛ рджрдмрд╛рд╡ рдкреА рдкрд╛рддреЗ рд╣реИрдВред
рдлрд┐рд░, рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ, рдЧрдгрдирд╛ рдХреА рдЧрдИ рджрдмрд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЧрддрд┐ рдХреЛ рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдкреВрд░рд╛ рд╕рдордп рдХрджрдо рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдореАрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╡реЗрдХ


рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдорд┐рдд рдЕрдВрддрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдордп рдХрджрдо рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдпреВрд▓рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: u (n + 1) = u (n) + dt * f,
рдЬрд╣рд╛рдБ f рдХреЛ рд╕рдореАрдХрд░рдг рдХреЗ рдкреВрд░реЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдордп рдХрд╛ рдЕрдВрддрд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдордп (u (n + 1)) рдореЗрдВ рдПрдХ рдирдП рдкрд▓ рдореЗрдВ рдЧрддрд┐ рдХрд╛ рдорд╛рди рдкрд┐рдЫрд▓реЗ рд╕рдордп (u (n)) рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рдЕрд╕рддрдд рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рддрд░рд▓ рдкрджрд╛рд░реНрде рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ (рдЧреНрд░рд┐рдмреЗрд▓ рдПрдо рдбреЙрд░реНрдирд╕реЗрдлрд░ рдЯреА рдиреЗрдЙрдиреНрд╣реЛрдлрд░ рдЯреА рд╕рд┐рдпрд╛рдо 1998) рдореЗрдВ рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрд╕рддрдд рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреБрдирд░рд╛рд╡реГрддреНрдд рдЧреЙрд╕-рд╕реАрдбреЗрд▓ рд╡рд┐рдзрд┐ред рдЗрд╕реЗ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рднреА рдордзреНрдпрд╡рд░реНрддреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдЧрдгрдирд╛ рдпреЛрдЬрдирд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдорд╛рдзрд╛рди 1 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ - рдЬреЛ рдкреВрд░реЗ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЛ рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо 2 рдбреА рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдореБрдЦреНрдп рдЬреЛрд░ рд╕реАрдорд╛ рд╢рд░реНрддреЛрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдкрд░ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдХрдард┐рдирд╛рдИ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред рдкреВрд░реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдЬрдореИрдХреНрд╕ рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рдЗрдореИрдХреНрд╕ рдкреЙрдЗрдВрдЯ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЗрдореИрдХреНрд╕ * рдЬреЗрдореИрдХреНрд╕ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд┐рдб рдмрди рдЬрд╛рддрд╛ рд╣реИред
4 рд╕реАрдорд╛рдУрдВ рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдХреБрд▓ рдореЗрдВ, рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рд░рдгреА (imax + 2) * (jmax + 2) рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд╢рд┐рдХрд╛ рдХреЗ рд╡реЗрдЧ рдФрд░ рджрдмрд╛рд╡ рдХреЗ рдЕрдкрдиреЗ рдореВрд▓реНрдп рд╣реИрдВ - рдпрд╣ рд╡реЗрдХреНрдЯрд░ рд╡реЗрдЧ рдХреНрд╖реЗрддреНрд░ рдФрд░ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЧреНрд░рд┐рдб рдкрд░ рд╕реНрдХреЗрд▓рд░ рджрдмрд╛рд╡ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИред
рдпреВ рд╕реЗрд▓ рдореЗрдВ рдХрдг рд╡реЗрдЧ x рд╣реИ
V, рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ y рдореЗрдВ рдХрдг рд╡реЗрдЧ рд╣реИ
рдкреА - рджрдмрд╛рд╡

рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдЪрд░ (рдпреВ, рд╡реА, рдкреА) рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рджреНрд░рд╡ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ - рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рдФрд░ рджреЛрд▓рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реАрдПрдлрдбреА рдПрдХ рдХрдВрдкрд┐рдд рдЧреНрд░рд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕реЗ рд▓реАрдкрдлреНрд░реЙрдЧ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗрдЧ рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдЙрд╕рдХреЗ рдЪреЗрд╣рд░реЗ рдкрд░, рдпреВ - рд╕реЗрд▓ рдХреА рджрд╛рдИрдВ рд╕реАрдорд╛ рдкрд░, рдФрд░ v - рдКрдкрд░реА рд╕реАрдорд╛ рдкрд░ рд╣реИрдВред

рджреАрд╡рд╛рд░реЛрдВ рдкрд░ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐


рдкрд░рд┐рдорд┐рдд рдЕрдВрддрд░ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЧреНрд░рд┐рдб рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рдорд╛рди (рдпреВ, рд╡реА, рдкреА) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпреЗ 4 рджреАрд╡рд╛рд░реЗрдВ рд╣реИрдВ - рдмрд╛рдПрдВ рд╕реЗ рдиреАрдЪреЗ рдФрд░ рдКрдкрд░ рд╕реЗ рджрд╛рдИрдВ рдУрд░ред рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдмрд┐рдирд╛ рдкрд░реНрдЪреА рдФрд░ рдореБрдлреНрдд-рдиреАрдВрдж рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ; рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдХреЗ рдмрдЬрд╛рдп рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВред

рдлреНрд░реА-рд╕реНрд▓реАрдк - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рддрд░рд▓ рджреАрд╡рд╛рд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЧреНрд▓рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рдШрд░реНрд╖рдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реАрдорд╛ рд╢рд░реНрддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдиреЛ-рд╕реНрд▓рд┐рдк рдПрдХ рдЪрд┐рдкрдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ - рдЕрд░реНрдерд╛рдд, рдЬрдм рдХреЛрдИ рджреАрд╡рд╛рд░ рдЯрдХрд░рд╛рддреА рд╣реИ, рддреЛ рдПрдХ рджреНрд░рд╡ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджреНрд░рд╡ рд╡реЗрдЧ рджреАрд╡рд╛рд░ рдХреЗ рд╡реЗрдЧ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдкрд░ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ)ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╕рд╣реА рд╕реАрдорд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рд╡реЗрдЧ рдХрд╛ u рдШрдЯрдХ = 0, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреАрд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд╡рдд рд╣реИ рдФрд░ рдкрд╛рдиреА рдХреЛ рд╕реАрдорд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдиреЛ-рд╕реНрд▓рд┐рдк рд╕реАрдорд╛ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП v рдШрдЯрдХ рднреА 0 рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдХрдВрдкрд┐рдд рдЬрд╛рд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред v рдШрдЯрдХ рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ v рд╕реАрдзреЗ рд╕реАрдорд╛ рдкрд░ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рджреАрд╡рд╛рд░ рдкрд░ v рдЕрдВрддрд┐рдо 2 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдФрд╕рдд рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред v_g = (v [imax + 1] [j] + v [imax] [j]) / реи
v_g рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ ((v [imax + 1] [j] + v [imax] [j]) / 2 = 0) рдФрд░ рд╣рдо рдпрд╣рд╛рдБ рд╕реЗ рдорд╛рди v [imax + 1] [j] рдкрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
v [рдЗрдореИрдХреНрд╕ + 1] [рдЬреЗ] = - рд╡реА [рдЗрдореИрдХреНрд╕] [рдЬреЗ];
рдКрдкрд░реА рд╕реАрдорд╛ рдкрд░ рдпреВ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



4 рдмреЙрд░реНрдбрд░реНрд╕ рдХреЛ рдирд┐рдореНрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рд░рдгреА рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдмрд╛рдИрдВ рджреАрд╡рд╛рд░

рдпреВ [реж] [рдЬреЗ], рдЬрд╣рд╛рдВ рдЬреЗ рдкреВрд░реА рджреАрд╡рд╛рд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ
v [реж] [рдЬреЗ]

рдпрд╣рд╛рдБ рдХреЛрдб рдореЗрдВ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
for (j = 0; j <= jmax + 1; j++) { U[0][j] = 0.0; V[0][j] = -V[1][j]; } 


рдиреАрдЪреЗ рдХреА рджреАрд╡рд╛рд░

u [i] [реж]
v [i] [реж]

 for (i = 0; i <= imax + 1; i++) { U[i][0] = -U[i][1]; V[i][0] = 0.0; } 


рджрд╛рд╣рд┐рдиреА рджреАрд╡рд╛рд░
рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдкрд╛рдИрдб рдЧреНрд░рд┐рдб рд╣реИ, рджрд╛рдИрдВ рджреАрд╡рд╛рд░ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ u рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрд░реНрдбрд░ рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдкрд╛рд╕ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП, рд╣рдо U рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ рдореЗрдВ U [imax] [j] рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдпреВ [рдЗрдореИрдХреНрд╕] [рдЬреЗ]
v [рдЗрдореИрдХреНрд╕ + 1] [рдЬреЗ]

 for (j = 0; j <= jmax + 1; j++) { U[imax][j] = 0.0; V[imax + 1][j] = -V[imax][j]; } 


рд╢реАрд░реНрд╖ рджреАрд╡рд╛рд░
рдпрд╣рд╛рдБ, v рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реАрдорд╛ рдкрд╛рд░рдЧрдореНрдп рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдЪрд▓рддреА рд╣реИ - jmax - рдЗрд╕рд▓рд┐рдП рд╣рдо V рдХреЗ рд▓рд┐рдП рдорд╛рди рдХреЛ рд╕реЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ - V [i] [jmax]

u [i] [jmax + 1]
v [i] [jmax]

 for (i = 0; i <= imax + 1; i++) { U[i][jmax + 1] = -U[i][jmax]; V[i][jmax] = 0.0; } 


рдореБрдЦреНрдп рд╕реЙрд▓реНрд╡рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рднреА рд╕реАрдорд╛ рдорд╛рди = 0 рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рджрдмрд╛рд╡ рдХреЛ рд╕реАрдорд╛рдУрдВ рдкрд░ рд░рдЦрдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджрдмрд╛рд╡ рдХреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдЧрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╕реАрдорд╛рдУрдВ рдкрд░ рджрдмрд╛рд╡ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВред рдмрд╕ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред

 for (j = 1; j <= jmax; j++) { //   P[0][j] = P[1][j]; //   P[imax + 1][j] = P[imax][j]; } for (i = 1; i <= imax; i++) { P[i][0] = P[i][1]; P[i][jmax + 1] = P[i][jmax]; } 


рдмрд╛рдзрд╛рдУрдВ рдкрд░ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐


рдзреНрд╡рдЬ C_B рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдмрд╛рд╣рд░реА рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдореИрдВ рджрдмрд╛рд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ 2 рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:

 if (IsObstacle(i, j)) { //     -  -    P   if (IsFluid(i, j - 1)) { P[i][j] = P[i][j - 1]; } //   -  ... else if (IsFluid(i - 1, j)) { P[i][j] = P[i - 1][j]; } // ....... } 


рдПрдХ рдХреЛрдгреАрдп рдХреЛрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрд╕рдкрд╛рд╕ рдХреЗ рдЬрд▓ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдФрд╕рдд рд▓реЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рдзрд╛ рд▓реЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдФрд░ рдКрдкрд░ рдкрд╛рдиреА рд╣реЛрдЧрд╛ред рддрдм рд╣рдо рдмрд╛рдзрд╛ рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ рджрдмрд╛рд╡ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорд╛рдирддреЗ рд╣реИрдВ:

 if (IsFluid(i - 1, j) && IsFluid(i, j + 1)) { P[i][j] = (P[i][j + 1] + P[i - 1][j]) / 2; } 


рд╕рддрд╣ рдкрд░ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐


рд╕рддрд╣ рдФрд░ рдЗрд╕рдХреА рдЧрддрд┐ рдХрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИред (рдЗрд╕ рдЦрдВрдб рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рддрд╣ рдкрд░ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╡рд╛рд▓реЗ рд╕реНрд░реЛрдд, рд╕рд░рд▓рддрдо рдмрд╛рдзрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВред)

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХрдгреЛрдВ рдХреЛ рддрд░рд▓ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддрд┐ рд╕реЗрд▓ 4 рдЯреБрдХрдбрд╝реЗ (рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдиреЗ рдХреЗ рдкрд╛рд╕ 1)ред рдЕрдЧрд▓рд╛, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдХрдг рд╢рд╛рд╕реНрддреНрд░реАрдп рдпрд╛рдВрддреНрд░рд┐рдХреА рд╕реЗ рд╕рд░рд▓ рдпреВрд▓рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рддреЗ рд╣реИрдВред рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ рдкреВрд░реЗ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдкреЛрд▓)ред

  x = particles[k].x; y = particles[k].y; //        i = (int)(x / delx); j = (int)(y / dely); u = U[i][j]; v = V[i][j]; //        x += delt * u; y += delt * v; 


рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░, рдХрдгреЛрдВ рд╡рд╛рд▓реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкрд╛рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдХреА рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рдЙрдирдореЗрдВ рдореВрд▓ рдЪрд░ (u, v, p) рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рдореБрдЦреНрдп рдЪрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рддрд╣ рдФрд░ рдЖрд╕рдиреНрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд╕реЗрд▓, рдкрд╛рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдмрд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╕рддрд╣ рдХреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рд╣рд╡рд╛ рдХрд┐рд╕ рддрд░рдл рд╕реЗ рд╣реИред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, 2 рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - FLAG рдФрд░ FLAGSURFред рдкрд╣рд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рд╕реЗрд▓ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдЬрд▓, рд╡рд╛рдпреБ (рдЦрд╛рд▓реА) рдФрд░ рдмрд╛рдзрд╛рдПрдВред рдпрд╣рд╛рдБ рд╕рдВрдЧрдд рдЭрдВрдбреЗ рд╣реИрдВ (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдмреА - рд╕реАрдорд╛ рдПрдл - рджреНрд░рд╡ рдИ - рдЦрд╛рд▓реА):

 public const int C_B = 0x0000; // public const int C_F = 0x0010;// public const int C_E = 0x1000;// 


FLAGSURF рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реЗрд╖ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореВрд▓реНрдп = 0ред рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рдЭрдВрдбреЗ рди рдХреЗрд╡рд▓ рд╕реЗрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░, рдмрд▓реНрдХрд┐ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рднреА рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЦрд╛рд▓реА рд╣реИред рдЭрдВрдбреЗ рдХреЛ рдорд╛рдирдХ рдмрд┐рдЯ рдорд╛рд╕реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
FLAGSURF рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рди рдореЗрдВ 4 рдмрд┐рдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ 4 рдкрдХреНрд╖реЛрдВ (рдЖрд╕рдиреНрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВред
рдпрджрд┐ рдмрд┐рдЯ 1 рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкрдбрд╝реЛрд╕реА рд╕реЗрд▓ рдореЗрдВ - рдЦрд╛рд▓реАред рдЕрдЧрд░ 0 - рддреЛ рдкрд╛рдиреА рд╣реИред
рдмрд┐рдЯреНрд╕: 0000 рдПрдирдПрд╕рдбрдмреНрд▓реНрдпреВрдУ 0000 0000 - рдЕрдХреНрд╖рд░ рдПрди (рдЙрддреНрддрд░ рдЙрддреНрддрд░) рдПрд╕ (рджрдХреНрд╖рд┐рдг рджрдХреНрд╖рд┐рдг) рдбрдмреНрд▓реНрдпреВ (рдкрд╢реНрдЪрд┐рдо рдкреВрд░реНрд╡) рдФрд░ рдУ (рдкрд╢реНрдЪрд┐рдо) рдХреЗ 4 рдкрдХреНрд╖реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЭрдВрдбреЗ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╕реНрд░реЛрдд рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:

public const int C_W = 0x0200; // 512
рдмрд╛рдЗрдирд░реА рдореЗрдВ, рдорд╛рди 0000 0010 0000 0000 рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
рдпрд╣рд╛рдБ рд╕рд╛рдЗрдб W рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдзреНрд╡рдЬ 1 рдкрд░ рд╕реЗрдЯ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕реЗрд▓ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдЦрд╛рд▓реА рд╣реИред
рдЗрд╕реА рд╕рдордп, рд╢реЗрд╖ 3 рдмрд┐рдЯреНрд╕ 0 рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╢реЗрд╖ рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдкрд╛рдиреА рд╕реЗ рднрд░ рдЬрд╛рддреА рд╣реИрдВред



рдкрдмреНрд▓рд┐рдХ рдХрд╛рд╕реНрдЯ int C_SW = 0x0600; // 1536 0000 0110 0000 0000
рдпрд╣рд╛рдБ W рдФрд░ S рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдзреНрд╡рдЬ 1 рдкрд░ рд╕реЗрдЯ рд╣реИред рддреЛ рд╡рд░реНрддрдорд╛рди рд╕реЗрд▓ рдХреЗ рдмрд╛рдИрдВ рдФрд░ рдиреАрдЪреЗ рдЦрд╛рд▓реА рд╣реИ, рдФрд░ рд╢реЗрд╖ рд╕реЗрд▓ рдкрд╛рдиреА рд╣реИрдВ



рд╕рддрд╣ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдФрд░ FLAGSURF рд╕рд░рдгреА рдореЗрдВ рднрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 //   ,      1 if (FLAG[i-1][j] == GG.C_E) FLAGSURF[i][j] = FLAGSURF[i][j] | GG.C_W; 


FLAGSURF рд╕рд░рдгреА рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╕рддрд╣ рдкрд░ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЪреВрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реАрдорд╛ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реАрдорд╛ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдиреАрдЪреЗ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╕рддрд╣ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рднреА рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрдВрдкрд┐рдд рдЧреНрд░рд┐рдб рд╣реИ рдФрд░ рд╕рднреА рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдпреВрд╡реА рдЪрд░ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред

рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╣рд╡рд╛ рдХрд╛ рджрдмрд╛рд╡ рдкрд╛рдиреА рдореЗрдВ рджрдмрд╛рд╡ рд╕реЗ 1000 рдЧреБрдирд╛ рдХрдо рд╣реИ - рдЗрд╕реЗ рдЙрдкреЗрдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╛рдиреА рдХреЛ рд╕рддрд╣ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рдХреА рдЧрддрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ред рдмреЗрд╢рдХ, рдореЗрд░реА рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рддрд╣ рдХреЗ рддрдирд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрддрд╛ред

рд╣рдо рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпреВ рдФрд░ рд╡реА рдХреЗ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦрд╛рд▓реА рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдиреАрдЪреЗ рд░рдЦ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ рднреВрд▓рдХрд░ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрдВрдкрд┐рдд рдЧреНрд░рд┐рдб рд╣реИред
рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рди рдкрдбрд╝реЛрд╕реА рдкрд╛рдиреА рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкрдбрд╝реЛрд╕реА рд╕реЗ рдпрд╣ рд╕рдм рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред



рдпрд╣рд╛рдВ рдПрдХ рд╕реНрдХреНрд░реАрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЪрд┐рдкрдХрд╛рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдиреАрд▓реЗ рд╡рд░реНрдЧ рдкрд╛рдиреА рд╣реИрдВред рдХрд╛рд▓реЗ рдирд┐рд╢рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╕реАрдорд╛ рд╢рд░реНрддреЗрдВ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЗрдмрд▓ рд╕рддрд╣ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рдд рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реЙрд▓реНрд╡рд░ рдХреЛрдб рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреВрд╡реА рдХреА рдЧрдгрдирд╛ рд╕рд╣реА рд╕реАрдорд╛ рдХреА рджреАрд╡рд╛рд░ рдХреЗ рд╕рд╛рдордиреЗ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ):

  if (IsFluid(i, j) && IsFluid(i+1, j)){ F[i][j] = ... } 


рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

рдЭрдВрдбрд╛ рдкрд┐рдВрдЬрд░рд╛ C_SW

  case GG.C_SW: { U[i][j - 1] = U[i][j]; V[i][j - 1] = V[i][j]; U[i - 1][j] = U[i][j]; V[i - 1][j] = V[i][j]; } break; 


рдпрд╣рд╛рдВ рд╣рдореЗрдВ рд╕реЗрд▓ рдореЗрдВ рд╕реНрд╡рдпрдВ рдорд╛рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЙрдирдХреА рдЧрдгрдирд╛ рд╕реЙрд▓реНрд╡рд░ рдореЗрдВ рдХреА рдЬрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдореЗрдВ рдкрдбрд╝реЛрд╕реА рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рд╕реЙрд▓реНрд╡рд░ рдореЗрдВ U [i] [j - 1] рдЗрддреНрдпрд╛рджрд┐ рд╢рдмреНрдж рд╣реЛрддреЗ рд╣реИрдВред

рдЗрди рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдХрдЯрддрдо рдЬрд▓ рдХреЛрд╢рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛ [i] [j] рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ U рдФрд░ V рдХреЗ рдорд╛рди рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ V [i - 1] [j] рдХрд╛ рдорд╛рди рд╕реЗрд▓ [i] [j] рдФрд░ [i - 1] [j + 1] рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реЗрд▓ [] i - 1] [j + 1] рдЧреИрд░-рдЬрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ V рдХрд╛ рдорд╛рди рднреА рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдиреАрдЪреЗ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк [i] [j] рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рд╕реЙрд▓реНрд╡рд░ рдореЗрдВ рдХреА рдЬрд╛рдПрдЧреАред ред

рдЭрдВрдбрд╛ рдкрд┐рдВрдЬрд░рд╛ C_W

  case GG.C_W: { U[i - 1][j] = U[i][j]; V[i - 1][j] = V[i][j]; } break; 


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИред

рдзреНрд╡рдЬ C_NW рдХреЗ рд╕рд╛рде рд╕реЗрд▓


  case GG.C_NW: { V[i][j] = V[i][j - 1]; U[i - 1][j] = U[i][j]; } break; 


рдпрд╣рд╛рдВ, рд╕реЗрд▓ рдореЗрдВ рдпреВ рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рд╕реЙрд▓реНрд╡рд░ рдореЗрдВ рд╣реА рдХреА рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХреЗ рджрд╛рдИрдВ рдУрд░ рдПрдХ рдкрд╛рдиреА рдХрд╛ рдХрдХреНрд╖ рд╣реИред рд▓реЗрдХрд┐рди рд╡реА рдХреЛ рдиреАрдЪреЗ рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╢реАрд░реНрд╖ рдкрд░ рд╕реЗрд▓ рдЦрд╛рд▓реА рд╣реИред рдпреВ [i] [рдЬреЗ] рдХреА рдЧрдгрдирд╛ рдХреЗ рдмрд╛рдж рд╕реЗ рдореВрд▓реНрдп рдпреВ [i - 1] [рдЬреЗ] рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдкрдбрд╝реЛрд╕реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдпреВ [i - 1] [рдЬреЗ]ред

рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдкрд┐рдЫрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕реЗрд▓ V [i] [j - 1] рд╕реЗ V [i] [j] рдХрд╛ рдореВрд▓реНрдп рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ V [i-1] рд╕реЗ [j] - V [i-рез рдореЗрдВ рдорд╛рди рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред ] [рдЬреЗ] рд╕реАрдорд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИред

рд╣рдо рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рджрдмрд╛рд╡ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ = 0. рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рддрд╣ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ, рджрдмрд╛рд╡ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рджрдмрд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдпреЗ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рджрдмрд╛рд╡ рдЧрдгрдирд╛ рд╕реАрдзреЗ рдЙрди рдореЗрдВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рдХрдг-рдХреЗрд╡рд▓ рджреНрд░рд╡ рдЧрддрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рд╕реНрд░реЛрдд рдореЗрдВ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдирд╛рдо рдЯреНрд░реИрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрд╣ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рддрд╣ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдг рдХреЗрд╡рд▓ рд╕рддрд╣ рдкрд░ рд╣реА рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рддрд░рд▓ рдХреА рдкреВрд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдирд╣реАрдВред рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рд╡реАрдУрдПрдл рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ - рд▓реЗрдХрд┐рди рд╕рддрд╣ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рд╡рд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдмреЛрдЭрд┐рд▓ рд╣реИред рдореЗрд░реА рд╡рд┐рдзрд┐ рдореЗрдВ, рдпрджрд┐ рдХреЛрдИ рдХрдг рдХрд┐рд╕реА рд╕реЗрд▓ рдХреЛ рдЫреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЦрд╛рд▓реА рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдгреЛрдВ рдХреЛ рдкрд╛рд╕ рдХреЗ рддрд░рд▓ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдХрдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ - рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рддрд╣ рдХрд╣рд╛рдВ рд╣реИред рдпрджрд┐ рдХрдг рдПрдХ рдЦрд╛рд▓реА рд╕реЗрд▓ рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рд╕реЗрд▓ рдХреЛ рддрд░рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдЕрд╢реБрджреНрдзрд┐ рдХрд╛ рдПрдХ рд╕рднреНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддреЗрдЬ рд╣реИ рдФрд░ рдЬрдЯрд┐рд▓ рдХреЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдзрд┐рдирд┐рд░реНрдгрдп рдЧрдгрдирд╛ рдпреЛрдЬрдирд╛


рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕реЙрд▓реНрд╡рд░ рдХрд╛ рдПрдХ рдирд┐рд╣рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИ - рдпрд╣ рдЧрддрд┐ рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХреЛрдб рдореЗрдВ рдЕрдВрддрд░ рдХрдо рд╕реЗ рдХрдо рд╣реИрдВред рдЬрдм рдирдореВрдирд╛, рдмрд╕ рдпреВ рдФрд░ рд╡реА рдХреЗ рд╕рд╛рде рд╕рднреА рд╢рд░реНрддреЗрдВ [i] [рдЬреЗ] рд╕рдореАрдХрд░рдг рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдЬрд╛рдПрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рд╕реНрдкрд╖реНрдЯ (рдирд┐рд╣рд┐рдд) рдпреЛрдЬрдирд╛ рдЖрдкрдХреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕рдордп рдХреЗ рдХрджрдо рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрднрд╡ рд╣реИред
рдЖрдк рдпрд╣рд╛рдБ http://math.mit.edu/cse/codes/mit18086_navierstokes.pdf рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

3 рдбреА рд╕рдВрд╕реНрдХрд░рдг


3 рдбреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕рдм рдХреБрдЫ 2 рдбреА рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреИрдорд░реЗ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП F1-F8 + WASD рдХреАрдЬрд╝, рдПрд░реЛ рдФрд░ ER PgUp PgDown рдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рдХрд░рддрд╛ рд╣реИред
рдкрд╛рдиреА рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП - рдкреА рдХреБрдВрдЬреА - рдкрд╛рдиреА рдХреЗ рджрдмрд╛рд╡ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЬреА - рдмреЗрд╣рддрд░ рд╕рддрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди (рдХреНрдпреВрдмреНрд╕ рдХреЗ рдмрдЬрд╛рдп рдЧреЛрд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрдореЛрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ - xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджреГрд╢реНрдп рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ (рдЖрдХрд╛рд░, рд╕рдордп рдХрджрдо, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрд▓ рдХрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рд╣реЛрддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд╣рд╛рдЗрдЯрдкреИрдк (рд╣рд╛рдЗрдЯреНрд╕ рдХрд╛ рдирдХреНрд╢рд╛) рдХреЛ рдкреЗрдВрдЯ рдореЗрдВ рдкреЗрдВрдЯ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рдЖрдХрд╛рд░ рдХрд┐рд╕реА рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдСрдЯреЛрд░реЗрд╕реНрдЬрд╝ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ, рдореИрдВ 2D рдФрд░ 3D рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреВрдВрдЧрд╛:





рд╢реЗрд╖ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдпрд╣рд╛рдБ












рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рд╕реНрд░реЛрдд рд╣реИрдВред

рд╕реНрд░реЛрдд рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ
рд╕рдм рдХреБрдЫ Visual Studio 2010 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
- рдЕрдиреБрдХреВрд▓реА рдореЗрд╖ рд╢реЛрдзрди - рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЫреЛрдЯреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрди рдмреЗрдЯреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рднреА рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рднреА рдЪрд░, рдЬрдмрдХрд┐ рдмрдбрд╝реА рдХреЛрд╢рд┐рдХрд╛рдПрдБ рд╡рд┐рднреЗрджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдмреЗрдЯреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рдореАрдк рд╣реЛрддреА рд╣реИрдВ
fluid2subcell *
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрд╕реНрдХрд░рдг
fluide2dimplicit \ рдФрд░ fluide2dimplicitfree \
- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИ
рдлреНрд▓реБрдЗрдб 2 рдореЙрдбреНрдпреВрд▓реЗрдбреНрдпреВрд▓
- рдкрд╛рдиреА рдХреА рдЧрддрд┐ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрдгреЛрдВ рдХреА рдЧрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддрд╣ рдкрд░ рд╣реА рд╣реЛрддрд╛ рд╣реИ
рдлрд╝реНрд▓реБрдЗрдб 2 рдЯреНрд░реИрдХ
- рд╕рддрд╣ рдкрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐ рдФрд░ рд╕реАрдорд╛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг , рдЬреЛ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ
рд╕рд░рд▓рддрдо рдмрд╛рдзрд╛
рдкреБрдирдГ рдЖрдпрд╛рдо рдХреЗ рдмрдЬрд╛рдп рдкрд╛рдиреА рдХреЗ рдШрдирддреНрд╡ рдФрд░ рдЪрд┐рдкрдЪрд┐рдкрд╛рд╣рдЯ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ,
рдЬреЛ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп UVP рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдЧреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрдмрд╛рд╡ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ
рд╕рд░рд▓рддрд╛
- рд╡рд╣ рд╕рдм рдЬреЛ рдкрд░рд┐рдорд┐рдд рдорд╛рддреНрд░рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ, рдЗрд╕ рд╡рд┐рдзрд┐ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ
рдкреБрд╕реНрддрдХ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛:
рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рддрд░рд▓ рдЧрддрд┐рдХреА рдХрд╛ рдкрд░рд┐рдЪрдп рдкрд░рд┐рдорд┐рдд рдорд╛рддреНрд░рд╛ рд╡рд┐рдзрд┐ Versteeg HK Malalasek

- рдЕрдм 3 рдбреА
- рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк - рд╕рддрд╣ рдФрд░ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛
SimpleFluid3D \
- рд╕реА ++ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг
fluid3dunion \
- GPU (рдХреЗрд╡рд▓ рдкрд╛рдиреА) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк , OpenCL рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдореЗрд░реЗ GeForce рдкрд░ 7 рдмрд╛рд░ рдХреЗ 550 рддреНрд╡рд░рдг (рд╡рд┐рд╢реЗрд╖рдХрд░ gpu рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд┐рдирд╛)
fluid3clsimple \
fluid3dunion рдореЗрдВ рдЬреЛ рд╣реИ рдЙрд╕рдХрд╛ рдмрд╣реБрдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг - рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди c # рдореЗрдВ рдХрдИ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рд╕реНрдкрд╖реНрдЯ
fluide3tao


рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ
рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рдпрд╣рд╛рдВ рд╣реИ рдХрд▓реНрд▓рдВрдж_рдорд╛рд╕реНрдЯрд░.рдкреАрдПрдлрдбреА
рдФрд░ рдпрд╣рд╛рдБ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╣рд╛рдЗрдбреНрд░реЛрдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдЧрддрд┐ рдХреЗ рд╕рдореАрдХрд░рдг

рдкреБрд╕реНрддрдХреЗрдВ:
- рдЧреНрд░рд┐рдмрд▓ рдПрдо рдбреЙрд░реНрдирд╕реЗрдлрд╝рд░ рдЯреА рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рд╕рд┐рдореБрд▓реЗрд╢рди рдЗрди рдлреНрд▓реВрдб рдбрд╛рдпрдиреЗрдорд┐рдХреНрд╕ SIAM 1998
// рдореИрдВ рдЗрд╕ рдкреБрд╕реНрддрдХ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдЕрднреА рднреА рд╕реАрдПрдлрдбреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛)

- рдХрдВрдкреНрдпреВрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмреНрд░рд┐рдбрд╕рди рдЖрд░ред рджреНрд░рд╡ рд╕рд┐рдореБрд▓реЗрд╢рди
- рдПрдВрдбрд░рд╕рди JDJr рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рджреНрд░рд╡ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдореВрд▓ рдмрд╛рддреЗрдВ рдПрдордЬреАрдПрдЪ 1995
- рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рдкреНрд░рд╡рд╛рд╣ 2007 рдХреЗ рдЪрд╛рд░реНрд▓реНрд╕ рд╣рд┐рд░реНрд╢-рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рди
- рдЧреИрд╕рд╛рд░-рддрд░рд▓ рдорд▓реНрдЯреАрдкрдЬ рдлреНрд▓реЛ рдХреЗ рдЧреНрд░реЗрдЯрд╛рд░ рдЯреНрд░рд┐рд╡рдЧреНрд╡рд╛рд╕рди рдбрд╛рдпрд░реЗрдХреНрдЯ рдиреНрдпреВрдореЗрд░рд┐рдХрд▓ рд╕рд┐рдореБрд▓реЗрд╢рди
- Versteeg HK Malalasek рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рддрд░рд▓ рдЧрддрд┐рдХреА рдХрд╛ рдкрд░рд┐рдЪрдп рдкрд░рд┐рдорд┐рдд рдорд╛рддреНрд░рд╛ рд╡рд┐рдзрд┐

рд╕рднреА рдХрд┐рддрд╛рдмреЗрдВ рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВ рдХрд┐ рдЖрдк рдХрд╣рд╛рдВ рд╣реИрдВред


PS рдпрджрд┐ рд╕реАрдПрдлрдбреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧ рд╣реИрдВ, рддреЛ рд╕рдорд╛рдзрд╛рди рдХреА рдЧрддрд┐ рдФрд░ рд╢реБрджреНрдзрддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╕рд╛рде рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдм рд╕рддрд╣ рдХреЛ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред
рдореИрдВ рдЦреБрдж рдХрдореЛрдмреЗрд╢ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЧрдгрд┐рдд рдФрд░ рднреМрддрд┐рдХреА рдореЗрд░рд╛ рдореБрдЦреНрдп рдХреНрд╖реЗрддреНрд░ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In197074/


All Articles