Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
<tt>test</tt>

test-function in variational formulation

Description

This class, and its associated trial one, is used for test and trial functions involved in variational formulations. Variational formulations are specified by expressions of the C++ language.

A test function is the formal argument involved in the expression for the integrate function:

    geo omega ("circle");
    space Xh (omega, "P1");
    test v (Xh);
    field lh = integrate (omega, 2*v);

For a bilinear form, the test function represents its second formal argument, while its first one is referred to as the trial one:

    trial u (Xh);
    test  v (Xh);
    form a = integrate (omega, dot(grad(u),grad(v)));

Implementation

This documentation has been generated from file main/lib/test.h

The test and trial classes are simply aliases to the test_basic class:

typedef test_basic<Float,rheo_default_memory_model,details::vf_tag_01> test;
typedef test_basic<Float,rheo_default_memory_model,details::vf_tag_10> trial;
see the test page for the full documentation
see the test page for the full documentation

The test_basic class provides an interface, via the smart_pointer class family, to a data container:

template <class T, class M, class VfTag>
class test_basic : public smart_pointer<test_rep<T,M> > {
public :
// typedefs:
using rep = test_rep<T,M>;
using base = smart_pointer<rep>;
using size_type = typename rep::size_type;
using memory_type = typename rep::memory_type;
using value_type = typename rep::value_type;
using scalar_type = typename rep::scalar_type;
using float_type = typename rep::float_type;
using geo_type = typename rep::geo_type;
using space_type = typename rep::space_type;
using diff_type = typename rep::diff_type;
using vf_tag_type = VfTag;
using self_type = test_basic<T,M,VfTag>;
using dual_self_type = test_basic<T,M,vf_dual_tag_type>;
// allocator/deallocator:
explicit test_basic (const space_type& V) : base(new_macro(rep(V))) {}
// accessors:
const space_type& get_vf_space() const { return base::data().get_vf_space(); }
space_constant::valued_type valued_tag() const { return base::data().valued_tag(); }
size_type n_derivative() const { return base::data().n_derivative(); }
size_type size() const { return get_vf_space().size(); }
details::test_component<T,M,VfTag> operator[] (size_type i_comp) const;
field::size_type size_type
Definition branch.cc:430
VfTag vf_tag_type
Definition test.h:222
typename rep::memory_type memory_type
Definition test.h:214
size_type size() const
Definition test.h:238
typename rep::diff_type diff_type
Definition test.h:220
test_basic< T, M, vf_dual_tag_type > dual_self_type
Definition test.h:225
typename rep::value_type value_type
Definition test.h:215
test_rep< T, M > rep
Definition test.h:211
test_basic< T, M, VfTag > self_type
Definition test.h:224
static const space_constant::valued_type valued_hint
Definition test.h:234
size_type n_derivative() const
Definition test.h:236
details::test_component< T, M, VfTag > operator[](size_type i_comp) const
typename rep::float_type float_type
Definition test.h:217
smart_pointer< rep > base
Definition test.h:212
typename rep::space_type space_type
Definition test.h:219
typename rep::geo_type geo_type
Definition test.h:218
typename details::dual_vf_tag< VfTag >::type vf_dual_tag_type
Definition test.h:223
typename rep::is_elementwise is_elementwise
Definition test.h:221
typename rep::scalar_type scalar_type
Definition test.h:216
space_constant::valued_type valued_tag() const
Definition test.h:235
const space_type & get_vf_space() const
Definition test.h:233
undeterminated_basic< T > value_type
Definition test.h:99
static const space_constant::valued_type valued_hint
Definition test.h:116
geo_basic< float_type, M > geo_type
Definition test.h:102
details::differentiate_option::type diff_type
Definition test.h:104
space_basic< float_type, M > space_type
Definition test.h:103
std::true_type is_elementwise
Definition test.h:105
typename float_traits< T >::type float_type
Definition test.h:101
std::size_t size_type
Definition test.h:97
};