Gradient Augmented Levelset Implementation in CPU & GPU
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
euler.cc (Latest change: Author:Lakshman Anumolu <acrlakshman@yahoo.co.in>, 2019-07-25 22:27:47 -0500, [commit: 74d2125])
Go to the documentation of this file.
1
// Copyright 2019 Lakshman Anumolu, Raunak Bardia.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are
6
// met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice,
9
// this list of conditions and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice,
12
// this list of conditions and the following disclaimer in the documentation
13
// and/or other materials provided with the distribution.
14
//
15
// 3. Neither the name of the copyright holder nor the names of its contributors
16
// may be used to endorse or promote products derived from this software without
17
// specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32
#include "
gals/cpu/temporal-schemes/euler.h
"
33
34
#include <math.h>
35
36
template
<
typename
T,
typename
T_GRID>
37
GALS::TEMPORAL_SCHEMES::Euler<T, T_GRID>::Euler
()
38
{
39
}
40
41
template
<
typename
T,
typename
T_GRID>
42
GALS::TEMPORAL_SCHEMES::Euler<T, T_GRID>::~Euler
()
43
{
44
}
45
46
template
<
typename
T,
typename
T_GRID>
47
void
GALS::TEMPORAL_SCHEMES::Euler<T, T_GRID>::compute
(
const
T dt,
48
const
GALS::CPU::LevelsetVelocity<T_GRID, T>
&levelset_velocity,
49
GALS::CPU::Levelset<T_GRID, T>
&levelset)
50
{
51
const
auto
&phi_prev = levelset.
phiPrev
();
52
auto
&phi = levelset.
phi
();
53
const
GALS::CPU::Vec3<int>
num_cells = phi.numCells();
54
const
auto
&velocity = levelset_velocity.
velocity
();
55
56
for
(
int
i = 0; i < num_cells[0]; ++i)
57
for
(
int
j = 0; j < num_cells[1]; ++j)
58
for
(
int
k = 0; k < num_cells[2]; ++k) {
59
phi(i, j, k) = phi_prev(i, j, k) - dt * velocity(i, j, k)[0];
// FIXME
60
}
61
}
62
63
template
class
GALS::TEMPORAL_SCHEMES::Euler<double, GALS::CPU::Grid<double, 1>
>;
64
template
class
GALS::TEMPORAL_SCHEMES::Euler<double, GALS::CPU::Grid<double, 2>
>;
65
template
class
GALS::TEMPORAL_SCHEMES::Euler<double, GALS::CPU::Grid<double, 3>
>;
GALS::CPU::Levelset
Definition:
levelset.h:70
GALS::CPU::Levelset::phi
Array< T_GRID, T > & phi()
Definition:
levelset.h:97
GALS::TEMPORAL_SCHEMES::Euler::compute
void compute(const T dt, const GALS::CPU::LevelsetVelocity< T_GRID, T > &levelset_velocity, GALS::CPU::Levelset< T_GRID, T > &levelset)
Definition:
euler.cc:47
GALS::CPU::LevelsetVelocity
Definition:
levelset-velocity.h:49
GALS::TEMPORAL_SCHEMES::Euler::Euler
Euler()
Definition:
euler.cc:37
GALS::TEMPORAL_SCHEMES::Euler::~Euler
~Euler()
Definition:
euler.cc:42
GALS::CPU::Levelset::phiPrev
Array< T_GRID, T > & phiPrev()
Definition:
levelset.h:136
GALS::CPU::LevelsetVelocity::velocity
Array< T_GRID, Vec3< T > > & velocity()
Definition:
levelset-velocity.h:76
GALS::CPU::Vec3
Definition:
vec3.h:46
GALS::TEMPORAL_SCHEMES::Euler
Definition:
euler.h:48
euler.h
euler.cc
Generated on Mon Jul 29 2019 15:24:07 for Gradient Augmented Levelset Implementation in CPU & GPU by
1.8.11